2016-09-18 21 views
0

如何設置可執行搜索共享在編譯的同一目錄庫, 我已經把可執行文件和相關的.so庫在同目錄中,而不是changubg LD_LIBRARY_PATH或者/etc/ld.so.conf文件, 是否有可能設置-rpath作爲一個變量,它就是保持executalbe文件的目錄,而變量是沒有一定的路徑,它是多變的。如何使用-rpath在編譯設置可執行搜索共享庫在同一目錄

回答

1

是否有可能設置-rpath作爲變量

是:你想DT_RPATH設置爲$ORIGIN,像這樣:

gcc main.c -Wl,-rpath='$ORIGIN' -lfoo -lbar 

注意:您需要單幅qoute的$ORIGIN防止外殼從擴大它 - RPATH必須包含$跡象。

另一種選擇是,像這樣鏈接:

gcc main.c ./libfoo.so ./libbar.so 

如果libfoo.solibbar.so這隻會工作不會DT_SONAME集,通常是一個劣解。我只是爲了完整而在此提及它。

相關問題