我现在正在尝试使用 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: In function `main': D:/Projects/server/main.cpp:13: undefined reference to `mysql_init@4' D:/Projects/server/main.cpp:14: undefined reference to `mysql_real_connect@32' collect2.exe: error: ld returned 1 exit status Process terminated with status 1 (0 minute(s), 2 second(s)) 3 error(s), 3 warning(s) (0 minute(s), 2 second(s))
我从其官方网站下载了MariaDB Connector/ODBC 2.0.10 Stable,并尝试了在互联网上找到的多种不同解决方案,但仍然无法正常工作。有人可以帮我解决这个问题吗?任何答复将不胜感激。
最佳答案
GNU 链接器对选项顺序很敏感。如果您在 main 中使用 libmysql,选项 -lmysql
应该在之后 main.o
UPD:我注意到您甚至没有在第二个链接字符串中使用库。在第一个字符串中它是无用的,添加到第二个字符串中,实际链接发生的地方。
关于c++ - 无法正确连接到 mariadb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36640200/