2017-04-09 95 views
0

我其中我已經創建了一個可執行testsd一個項目路徑:C++可執行錯誤:無法打開共享對象文件:沒有這樣的文件或目錄

[email protected]:~/TestProject/build/linux/debug/bin/testsd 

項目目錄和層次結構是如下:

/TestProject 
|-build/linux/debug/bin 
|-ExtLib/folder/lib(containing .a and .so files) 
|-ExtLib/folder/src(containing multiple sub folders with .cpp files) 
|-ExtLib/folder/include(containing multiple sub folders with .cpp files) 
|-src(containing multiple sub folders with .cpp files and mainc.pp) 
|-tests(containing Runtests.cpp and catch.hpp files) 

問題是,當我運行這個可執行文件(./testsd),我遇到了以下錯誤:

./testsd: error while loading shared libraries: libuastackd.so: cannot open shared object file: No such file or directory 

libuastackd.so文件被包含在EXTLIB /文件夾/ lib和EXTLIB /文件夾/ SRC /堆棧/ lib中的文件夾。任何人都可以幫助,我該如何克服這個問題?

多虧了rG

回答

0

你可以設置適當的LD_LIBRARY_PATH環境。 見this。閱讀ld-linux.so(8)

有一些方法可以爲您的整個會話設置LD_LIBRARY_PATH,例如,通過編輯相應~/.login~/.bashrc~/.bashenv~/.profile等等,而這將改變任何程序的行爲,你開始後,包括一些Eclipse IDE中

閱讀Drepper的How To Write Shared Libraries,尤其是其他的解決方案-e.g.適當的-Wl,-rpath設置(這可能是你真正應該使用的)。

+0

非常感謝它的工作。現在我有一個不同的senario。我也想通過eclipse IDE運行可執行文件,並再次顯示相同的錯誤。如何省略ecipse中的相​​同錯誤? –

+0

適當地配置您的IDE或您的用戶帳戶(例如,通過'〜/ .bashrc' ....) –

+0

我沒有正確理解您,請您詳細說明一下嗎? –

相關問題