繁体   English   中英

程序在运行时找不到libboost_program_options.so.1.47.0

[英]Program can't find libboost_program_options.so.1.47.0 at runtime

由于我没有root用户权限来安装Boost C ++库,因此将其安装在本地本地下。 编译时,我使用了: g++ -I/home/name/local/boost_1_47_0 -L/home/name/local/boost_1_47_0/stage/lib foo.cc -o foo -lboost_program_options

但是在运行时会error while loading shared libraries: libboost_program_options.so.1.47.0: cannot open shared object file: No such file or directoryerror while loading shared libraries: libboost_program_options.so.1.47.0: cannot open shared object file: No such file or directory

和ldd给出: libboost_program_options.so.1.47.0 => not found

我也尝试指定该库的绝对路径,但是它也不起作用: g++ /home/name/local/boost_1_47_0/stage/lib/libboost_program_options.so.1.47.0 -I/home/name/local/boost_1_47_0 -L/home/name/local/boost_1_47_0/stage/lib foo.cc -o foo

尝试使用LD_LIBRARY_PATH环境变量来指示运行时链接程序在何处查找库:

export LD_LIBRARY_PATH=/home/name/local/boost_1_47_0/stage/lib

然后重新运行您的应用程序。

我是新手,所以不要太在意我的话。 此外,这个问题还有几个月的历史了,我想很久以前就解决了。 不过,这就是我的想法。

您指定链接程序的库路径,因此程序可以编译并很好地链接。 但是,当您尝试执行二进制文件时,它将在环境定义的路径中查找库。

我猜这可以通过输入bash来解决

导出PATH = $ PATH:path_to_your_library_folder

最好的问候米罗斯拉夫

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM