由于我没有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
答案 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
最诚挚的问候 米罗