我可以成功鏈接對libawesomium-1.6.5.so
:對鏈接共享庫,調用程序沒有定製LD_LIBRARY_PATH
-L-L.
-L-lawesomium-1.6.5
-L-ldl
libawesomium-1.6.5.so
是在同一目錄作爲我的可執行文件,現在如果我嘗試調用我的程序(我會打電話給它PROG現在),它的存在有:
./prog: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
所以我做一個符號鏈接libawesomium-1.6.5.so.0
指向libawesomium-1.6.5.so
,再次運行prog
給了我同樣的錯誤,有一個自定義的012叫它的作品,但我想分發prog
,我希望用戶能夠使用prog
與root權限(安裝awesomium到/usr/lib
等),而不需要設置LD_LIBRARY_PATH
。一個選項是設置LD_LIBRARY_PATH
的shell腳本,但我更喜歡不同的方式(我也聽說設置LD_LIBRARY_PATH
是一個壞主意)。
此外,如果不需要創建符號鏈接到libawesomium-1.6.5.so.0
,那將是非常好的。
編輯:
傳遞-rpath=.
到鏈接的作品!但不幸的是awesomium不能對付它:
/.../awesomium_test/AwesomiumProcess: error while loading shared libraries: libawesomium-1.6.5.so.0: cannot open shared object file: No such file or directory
使用-rpath和設置LD_LIBRARY_PATH從內PROG工作
哇這個作品,謝謝!那麼不完整,看看我的編輯。 – dav1d
我明白了!在我的程序中加載awesomium之前,我可以設置'LD_LIBRARY_PATH'。 – dav1d
您應該傳遞'-Wl,-rpath ='$ ORIGIN''而不是'-Wl,-rpath = .',而LI_LIBRARY_PATH將無用。 – Julien