用c程序连接mysql数据库

Posted

技术标签:

【中文标题】用c程序连接mysql数据库【英文标题】:Connecting to mysql database with c program 【发布时间】:2020-07-27 12:13:14 【问题描述】:

我想在 CodeBlocks 中使用 C 连接 mysql 数据库

    我下载了 MySQL Connector C 6.1

    我在下面添加到我的链接器设置

    我将此添加到搜索目录中的编译器

    我将 libmysql.dll 复制到我的项目目录和 /windows/system

    我在我的 hello world 示例中添加了#include "mysql.h" 并尝试编译它。

     #include <stdio.h>
     #include <stdlib.h>
     #include "mysql.h"    
     int main()
     
     printf("Hello world!\n");
     return 0;
     
    

当我尝试编译它时,出现以下错误:

找不到-l-lmysqlpp

找不到-l-lmysqlclient

如果有任何帮助,我将不胜感激。

编辑:

    让我上传我的 test_build_log.html 文件
-------------- Build: Debug in test (compiler: GNU GCC Compiler)---------------
gcc.exe -o bin\Debug\test.exe obj\Debug\main.o "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib" "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs12\mysqlclient.lib" -l-lmysqlpp -l-lmysqlclient
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -l-lmysqlpp
C:/Program Files/CodeBlocks/MinGW/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe: cannot find -l-lmysqlclient
collect2.exe: error: ld returned 1 exit status

【问题讨论】:

我认为这个-l-lmysqlpp 应该是-lmysqlpp 你使用的是什么编译器/操作系统? GNU GCC 编译器/Windows 10 那么第一条评论是正确的。如果这是您收到的错误/警告,那么您的链接器设置中可能输入了错误的内容。您是否在某处列出了一个空字符串会导致 -l 出现? 【参考方案1】:
cannot find -l-lmysqlpp
cannot find -l-lmysqlclient

这些应该以如下形式呈现给链接器:

-lmysqlpp
-lmysqlclient

重复的-l 开关表示您的链接器设置有问题。确保link libraryOther linker options 框中都没有条目(包括空格或其他隐藏字符)。您可能需要清除并重新输入每个框中的所有内容。

再想一试,查看实际使用的编译命令行: Code::Blocks 可以输出构建日志。设置->编译器和调试器->全局编译器设置->向右滑动选项卡->构建选项选项卡->将构建日志保存到 HTML。打开此功能,然后在下次尝试后查看日志。那里可能有一些指向问题的地方。

【讨论】:

我不知道为什么这个额外的 -l 出现在这些行之前。我在链接设置中只有两个条目(可以在我发布的第一张图片中看到)。这也是我的构建日志:` gcc.exe -o bin\Debug\test.exe obj\Debug\main.o "C:\Program Files\MySQL\MySQL Connector C 6.1\lib\libmysql.lib" "C:\程序文件\MySQL\MySQL 连接器 C 6.1\lib\vs12\mysqlclient.lib" -l-lmysqlpp -l-lmysqlclient ` @user3742046 见编辑。打开该功能后,请查看构建日志。 我终于明白了。这些附加链接器选项已添加到“调试”选项卡中。当我删除它们时,一切正常。谢谢

以上是关于用c程序连接mysql数据库的主要内容,如果未能解决你的问题,请参考以下文章

用C语言API(常用)操作MySql数据库

Ubuntu下Java程序如何连接MySQL数据库?

用C语言怎么实现与数据库的连接

Linux centos 7下: 用 C 语言连接 MySQL数据库

用C#.net连接MYSQL,怎么连接?还要安装啥吗?急!!!

如何用MySQL建立数据库