用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 library
和Other 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数据库的主要内容,如果未能解决你的问题,请参考以下文章
Linux centos 7下: 用 C 语言连接 MySQL数据库