首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqlpp中的参考误差

mysqlpp中的参考误差
EN

Stack Overflow用户
提问于 2013-12-06 18:12:12
回答 1查看 718关注 0票数 1

和其他许多人一样,我也遇到了编译一个包括mysqlpp的程序的问题。

mysqlpp似乎安装正确,库路径也在/etc/ld.so.conf中正确设置,并且已知(因此我认为):

代码语言:javascript
复制
$ sudo ldconfig -p | grep mysql
libmysqlpp.so.3 (libc6,x86-64) => /usr/local/lib/libmysqlpp.so.3
libmysqlpp.so (libc6,x86-64) => /usr/local/lib/libmysqlpp.so
libmysqlclient.so.18 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libmysqlclient.so.18
libmysqlclient.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libmysqlclient.so

但是好像出了点问题,编译器没有找到mysqlpp的库。

链接-编译器命令:

代码语言:javascript
复制
 /usr/bin/c++ -lm -L/usr/lib -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient -lmysqlpp -o myprogram  myprogram.o

错误消息,即mysqlpp引用丢失(在许多其他缺失引用之外):

代码语言:javascript
复制
/usr/local/include/mysql++/row.h:328: undefined reference to `mysqlpp::Row::at(unsigned long) const'
myprogram.o: In function `mysqlpp::StoreQueryResult::operator=(mysqlpp::StoreQueryResult const&)':
/usr/local/include/mysql++/result.h:252: undefined reference to `mysqlpp::StoreQueryResult::copy(mysqlpp::StoreQueryResult const&)'
myprogram.o: In function `long mysqlpp::String::do_conv<long>(char const*) const':
/usr/local/include/mysql++/mystring.h:615: undefined reference to `mysqlpp::String::length() const'
/usr/local/include/mysql++/mystring.h:615: undefined reference to `mysqlpp::String::data() const'
collect2: ld returned 1 exit status

我的智慧到了尽头。也许你们中有人能帮我。谢谢!!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-06 18:15:00

链接器以反向顺序查找依赖项,因此需要将库放在命令行的对象(或源文件)之后。

代码语言:javascript
复制
$ c++ myprogram.o -o myprogram -lm -L/usr/lib -L/usr/lib/x86_64-linux-gnu/ -lmysqlclient -lmysqlpp
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20430757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档