[英]error while loading shared libraries: libboost_program_options.so.1.65.1
[英]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 directory
: 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
嘗試使用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.