2

我正在尝试编译它(也在 mysql c++ 连接器文档中列出): http: //pastebin.com/HLv4zR0r

但我收到这些错误: http: //pastebin.com/3t0UbeFy

这就是我尝试编译的方式:

g++ -o test test.cpp `mysql_config --cflags --libs` -I./include/cppconn -L./lib -lmysqlcppconn-static

运行的结果mysql_config --cflags --libs是:

-I/usr/include/mysql -DBIG_JOINS=1  -fno-strict-aliasing  -g
-L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm -lrt -ldl

编辑:

在使用正确排序的链接器参数运行 Jonathan Wakely 建议的命令后,

g++ -o test test.cpp  -I./include/cppconn -L./lib -lmysqlcppconn-static `mysql_config --cflags --libs`

我得到不同的错误: http: //pastebin.com/4EWNgy9i

4

1 回答 1

0

mysqlcppcon 库依赖于 mysqlclient C 库,因此需要将 mysqlclient 库放在后面 -lmysqlcppconn-static

g++ -o test test.cpp  -I./include/cppconn -L./lib -lmysqlcppconn-static `mysql_config --cflags --libs`

链接器参数的顺序很重要。链接器按顺序查看每个文件并决定是否需要其中的任何符号。当它看到libmysqlcppconn-static.a它已经查看(并忽略)libmysqlclient.so 库的文件时,不会再回头查看它。

于 2012-11-12T22:36:29.500 回答