2011-04-14 18 views
2

有大量在線文章以尖銳的語氣宣佈使用LD_LIBRARY_PATH是一個壞主意,並且必須使用-R選項設置庫搜索路徑。大多數文章也同樣提及Solaris。麻煩的是,在Linux上,這不適用於g ++。使用-R選項的庫搜索路徑

g++: unrecognized option '-R' 

現在呢?

謝謝!

回答

1

您可以使用-Wl,-rpath=/your/rpath

$ g++ -o t t.cpp -Wl,-rpath=/my/lib/dir -lwhatever 
$ readelf -a t|grep RPATH 
0x000000000000000f (RPATH)    Library rpath: [/my/lib/dir] 
+0

很好,謝謝!我剛剛嘗試過,並意識到問題進一步深入。我想構建一個我可以發佈的應用程序,而不是讓最終用戶設置運行時搜索路徑。如果我這樣做,那麼整個事情只有在從特定位置調用構建的應用程序時才起作用。相對運行時搜索路徑從其他目錄無效。當然,我不知道絕對搜索路徑是什麼。理想的情況是靜態編譯,但在與libstdC++鏈接時似乎是個問題。感謝您及時的回覆。 – dgorur 2011-04-14 19:23:23