You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

加载共享库失败:libboost_serialization.so.1.66.0找不到的解决求助

咱们一步步来解决这个共享库的问题,手动编译Boost后遇到这种情况太常见了。下面是几个靠谱的解决办法:

解决方案1:临时配置动态库搜索路径(适合快速测试)

直接在运行程序前,把Boost的lib目录加入到系统动态库搜索路径中:

export LD_LIBRARY_PATH=/home/Hussain/boost_1_66_0/lib:$LD_LIBRARY_PATH

执行完这条命令后再运行你的程序,系统就会优先从指定路径查找动态库。注意这个设置只在当前终端会话有效,关闭终端后就会失效。

解决方案2:永久配置系统动态库搜索路径(推荐长期使用)

如果想让设置永久生效,分两种场景操作:

  • 仅当前用户生效:编辑你的shell配置文件(比如~/.bashrc或~/.zshrc,取决于你用的shell),添加一行:
    export LD_LIBRARY_PATH=/home/Hussain/boost_1_66_0/lib:$LD_LIBRARY_PATH
    
    保存后执行source ~/.bashrc(对应你的配置文件),让设置立即生效。
  • 所有用户生效:新建一个系统级的配置文件,比如/etc/ld.so.conf.d/boost.conf,在里面添加一行:
    /home/Hussain/boost_1_66_0/lib
    
    然后执行sudo ldconfig更新系统的动态库缓存,这样所有用户运行程序时都会自动识别这个路径。
解决方案3:编译时嵌入运行时库路径(无需依赖环境变量)

你可以在编译程序时,通过链接器参数把Boost库的路径直接嵌入到可执行文件中,这样运行时就不用依赖环境变量了。在Eclipse里这么操作:

  1. 打开项目的Properties设置界面
  2. 导航到C/C++ Build → Settings → GCC C++ Linker → Miscellaneous
  3. 在Other flags里添加参数:-Wl,-rpath=/home/Hussain/boost_1_66_0/lib
  4. 保存设置后重新编译程序
额外检查点
  • 先确认/home/Hussain/boost_1_66_0/lib目录下确实存在libboost_serialization.so.1.66.0文件(以及对应的软链接libboost_serialization.so)。如果没有,说明你编译Boost时没包含serialization库,需要重新编译:
    ./b2 stage threading=multi --with-serialization
    
  • 你之前执行的./bootstrap.sh --prefix=/usr && ./b2 stage ...是打算把Boost安装到/usr目录吗?如果是,那库路径应该是/usr/lib,要确认你实际的库文件位置,别和/home/Hussain/boost_1_66_0/lib搞混了。

内容的提问来源于stack exchange,提问作者Agaz Wani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:24:25