博客專欄

EEPW首頁 > 博客 > Makefile 中 -rpath -rpath-link

Makefile 中 -rpath -rpath-link

發(fā)布人:電子禪石 時間:2024-02-20 來源:工程師 發(fā)布文章
-rpath和-rpath-link

假設有3個文件,在同一目錄下,有這樣的依賴關系

test->liba.so->libd.so

如果編譯test的時候這樣寫

gcc test.c –la

warning:libd.so, needed by liba.so not found

解決辦法有3個

方法1

gcc test.c –la –ld

方法2

gcc test.c –la -Wl,-rpath-link ./

這樣就告訴編譯器,當要尋找liba的依賴庫時候,請到 ./去找

方法3

gcc test.c –la -Wl,-rpath ./

這樣就告訴編譯器,當要尋找liba的依賴庫時候,請到 ./去找

方法2和方法3有什么區(qū)別呢?

-rpath和-rpath-link都可以在鏈接時指定庫的路徑;但是運行可執(zhí)行文件時,-rpath-link指定的路徑就不再有效(鏈接器沒有將庫的路徑包含進可執(zhí)行文件中),而-rpath指定的路徑還有效,程序回到指定的路徑中去找?guī)?因為鏈接器已經將庫的路徑包含在可執(zhí)行文件中了。)最后,不管使用了-rpath還是-rpath-link,LD_LIBRARY_PATH還是有效的。


*博客內容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: makefile

相關推薦

技術專區(qū)

關閉