我今天在讀某大牛的技術部落格的時候知道,gcc有個rpath選項。
幹什麼用的呢?
我以前寫程式,想把程式中的某部分寫成動态庫的形式。但是在調用此動态庫的時候,程式會在系統目錄中找。那麼我隻有兩種方式解決:
1、把我寫好的動态庫放到系統目錄裡。缺點:1a、系統目錄被搞的很混亂。1b、在别人電腦上部署會很麻煩。
2、指定LD_LIBRARY_PATH環境變量。缺點:不能直接啟動應用程式而需要外部shell啟動。
今天,我了解到,gcc在連結的時候有個rpath選項。它可以把動态庫的路徑直接寫到elf檔案中去。這樣可以将rpath寫成相對路徑。友善部署。
參考文章:http://www.xxlinux.com/linux/article/development/soft/20070925/9913.html