链接 boost 库时"Error while loading shared libraries"引发的,除了我无法使用 root 访问权限来修复它

"Error while loading shared libraries" raised when linking boost library, except I cannot use root access to fix it

本文关键字:root 访问 访问权 权限 while loading Error 库时 boost shared libraries      更新时间:2023-10-16

我正在尝试在学校的超级计算机上运行一些代码,运行在Ubuntu上。 该代码恰好需要 boost 中的计时器库。

所以我上传了 boost 1.71.0 存储库,成功构建了它。

然后我用以下命令构建了它(成功( g++ -g src/foo.cpp -o run/foo -I ../boost_1_71_0/-L ../boost_1_71_0/stage/lib/-lboost_timer -fopenmp -std=c++11

然后,当我尝试运行该文件时,会发生这种情况: 加载共享库时出错:libboost_timer.so.1.71.0:无法打开共享对象文件:没有此类文件或目录

我滚动浏览了几个论坛讨论,显然运行以下命令应该更新库路径并修复所有内容: sudo/sbin/ldconfig -v 但是由于我没有root访问权限,因此无法运行它。 我正在寻找一种不涉及任何 sudo 的解决方法。

您可以通过确保../boost_1_71_0/stage/lib/处于LD_LIBRARY_PATH运行程序,以便动态加载程序知道在哪里搜索 Boost 共享库。假设 Boost 库位于磁盘上程序所在目录的相对位置../boost_1_71_0/stage/lib/,则按如下方式运行程序。

LD_LIBRARY_PATH=../boost_1_71_0/stage/lib/ ./program