0
如何設置可執行搜索共享在編譯的同一目錄庫, 我已經把可執行文件和相關的.so庫在同目錄中,而不是changubg LD_LIBRARY_PATH或者/etc/ld.so.conf文件, 是否有可能設置-rpath作爲一個變量,它就是保持executalbe文件的目錄,而變量是沒有一定的路徑,它是多變的。如何使用-rpath在編譯設置可執行搜索共享庫在同一目錄
如何設置可執行搜索共享在編譯的同一目錄庫, 我已經把可執行文件和相關的.so庫在同目錄中,而不是changubg LD_LIBRARY_PATH或者/etc/ld.so.conf文件, 是否有可能設置-rpath作爲一個變量,它就是保持executalbe文件的目錄,而變量是沒有一定的路徑,它是多變的。如何使用-rpath在編譯設置可執行搜索共享庫在同一目錄
是否有可能設置-rpath作爲變量
是:你想DT_RPATH
設置爲$ORIGIN
,像這樣:
gcc main.c -Wl,-rpath='$ORIGIN' -lfoo -lbar
注意:您需要單幅qoute的$ORIGIN
防止外殼從擴大它 - RPATH
必須包含$
跡象。
另一種選擇是,像這樣鏈接:
gcc main.c ./libfoo.so ./libbar.so
如果libfoo.so
和libbar.so
做這隻會工作不會有DT_SONAME
集,通常是一個劣解。我只是爲了完整而在此提及它。