【发布时间】:2016-08-07 00:23:48
【问题描述】:
我现在正在尝试使用 c++ 实现服务器,我尝试将用户的信息保存到数据库中,但是在连接到数据库时遇到了一些问题。由于代码块生成以下错误,我无法构建我的程序
-------------- Build: Debug in server (compiler: GNU GCC Compiler)--------------- mingw32-g++.exe -Wall -fexceptions -g -lpthread -lmysql -I"D:\Program Files\MariaDB 10.1\include\mysql" -c D:\Projects\server\main.cpp -o obj\Debug\main .o mingw32-g++.exe -L"D:\Program Files\MariaDB 10.1\lib" -o bin\Debug\server.exe obj\Debug\main.o "D:\Program Files (x86)\CodeBlocks\MinGW\lib \libwinpthread.a" "D:\Program Files (x86)\CodeBlocks\MinGW\lib\libws2_32.a" obj\Debug\main.o:在函数“main”中: D:/Projects/server/main.cpp:13: 未定义对 `mysql_init@4' 的引用 D:/Projects/server/main.cpp:14: 未定义对 `mysql_real_connect@32' 的引用 collect2.exe:错误:ld 返回 1 退出状态 进程以状态 1 终止(0 分钟,2 秒) 3 个错误,3 个警告(0 分钟,2 秒)我从它的官方网站下载了 MariaDB Connector/ODBC 2.0.10 Stable,我尝试了很多不同的解决方案,我在 Internet 上找到了它,但它仍然不起作用。有人可以帮我解决这个问题吗?任何回复将不胜感激。
【问题讨论】:
-
您的问题是第 13 行和第 14 行,错误是“未定义的引用”。搜索那个错误,你会发现很多信息。显然你的程序想要使用一个它找不到的函数。
-
感谢回复,mysql_init应该在mysql.h中定义并在libmysql.lib中实现,我确实将包含mysql.h和libmysql.lib的路径添加到代码块中的搜索目录中' 设置。
-
你也链接了图书馆吗? “包含”只允许编译它,但你需要告诉链接器将你的程序与已安装在你机器上某处的 libmysql 链接。
-
是的,我在编译程序的时候添加了选项-lmysql
-
您应该为链接程序添加它,而不是编译它的各个模块。