undefined reference boost::system::get_system_category

本文详细介绍了在从1.82升级到2.0的过程中遇到的C++Mongo驱动连接问题,并分享了解决方法。主要原因是官网提供的lib编译参数不正确,导致缺少boost库中的get_system_category函数。解决方案包括手动编译boost库,以及删除并重新安装boost库。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题是在从1.82升级到2.0的时候出的连接问题,自己用了很长时间才解决掉,总算解决了,分享下原因吧。主要是因为从官网上下载的C++ Mongo驱动有问题。必须自己编译,可以通过命令查看:

>>nm libmongoclient.a | grep get_system_category U _ZN5boost6system19get_system_categoryEv U _ZN5boost6system19get_system_categoryEv U _ZN5boost6system19get_system_categoryEv U _ZN5boost6system19get_system_categoryEv U _ZN5boost6system19get_system_categoryE

会发现这个在boost库中根本就没有这个函数。可能官网提供的lib编译参数不一样。 只能自己编译了。 另外如果boost还有其它问题,你需要。

1.删除boost /usr/include/ 和/usr/lib/下的 所有关于boost的文件 还有系统自带的 一般在 /usr/lib64 下 可以通过 locate boost | grep usr 来查找

2.重新安装boost:

./bootstrap.sh ./bjam install 默认会安装到/usr/local 下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值