簡體   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