0

由于我没有安装 Boost C++ 库的 root 权限,所以我将它安装在我的本地本地下。编译时,我使用了: 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

4

2 回答 2

4

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

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

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

于 2011-09-22T13:40:07.393 回答
0

我是新手,所以不要把我的话当回事。此外,这个问题已有几个月的历史了,我想很久以前就解决了。尽管如此,这就是我的想法。

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

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

导出 PATH=$PATH:path_to_your_library_folder

最好的问候米罗斯拉夫

于 2012-01-12T14:57:49.407 回答