我正在尝试编译它(也在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
答案 0 :(得分:0)
mysqlcppcon库依赖于mysqlclient C库,所以你需要在 -lmysqlcppconn-static
之后放置mysqlclient libs
g++ -o test test.cpp -I./include/cppconn -L./lib -lmysqlcppconn-static `mysql_config --cflags --libs`
链接器参数的顺序很重要。链接器按顺序查看每个文件,并确定它是否需要来自它的任何符号。当它看到libmysqlcppconn-static.a
文件时,它已经查看(并忽略了)libmysqlclient.so库,并且不会再回头查看它。