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

时间:2011-09-22 13:36:01

标签: c++ boost boost-program-options

由于我没有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 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

2 个答案:

答案 0 :(得分:4)

尝试使用LD_LIBRARY_PATH环境变量来指示运行时链接器在哪里找到库:

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

然后重新运行您的申请。

答案 1 :(得分:0)

我是新手,所以不要太认真对待我的话。此外,这个问题有几个月了,我想很久以前就解决了。不过,这就是我的想法。

指定链接器的库路径,以便程序编译和链接正常。但是,当您尝试执行二进制文件时,它会在环境定义的路径中查找库。

我想这可以通过键入bash

来解决

export PATH = $ PATH:path_to_your_library_folder

最诚挚的问候 米罗