c++ - 无法正确连接到 mariadb

标签 c++ gcc mariadb

我现在正在尝试使用 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/

相关文章:

c - 这两个函数序言指令序列有什么区别?

mysql - 查询更新和删除两个不同表中的记录

mysql - 针对 SELECT 查询优化 my.cnf MariaDB

c++ - 如何将 Boost 库添加到 RPI2 上的 QTCreator?

c - gcc: 警告: 'used' 属性被忽略

c++ - 导入的目标 "Boost::system"包含不存在的路径 "/include"

linux - gcc 错误 - "error adding symbols: DSO missing from command line"

python - mariadb 的简单多行 SQL 查询中的 pymysql.err.ProgrammingError 1064

c++ - 这些天 'ends' 有什么用?

C++11:lambda 捕获以什么顺序被破坏?