2012-10-04 23 views
2

我必須運送一個應用程序的第三方庫。因爲我不想手動設置LD_LIBRARY_PATH或者需要任何包裝腳本,我希望automake設置自定義rpath。不幸的是libtool都有自己-rpath選項,並在automake和自定義rpath

g++: unrecognized option '-rpath' 

加入-Wl,-rpath,/foo/barLDFLAGS唯一的結果,因爲libtool似乎得到混淆的命令行選項。替代形式-Wl,-rpath -Wl,/foo/bar也是如此。

有沒有什麼辦法可以指定一個自定義的rpath而沒有libtool干擾?

回答

2

如您所說,libtool有自己的-rpath選項。任何你不想使用它的理由?

% libtool link g++ foo.cc -o foo -rpath /somewhere 
libtool: link: g++ foo.cc -o foo -Wl,-rpath -Wl,/somewhere 
% readelf -d foo | grep RPATH 
0x000000000000000f (RPATH)    Library rpath: [/somewhere] 

在Automake的或Libtool程序手冊的例子中沒有使用-Wl指定-rpath

+0

謝謝,在'_LDFLAGS'中指定'-rpath'(或'-R')的作品。仍然看起來很奇怪,libtool只接受標準和自己(鏈接器)標誌的隨機混合。 – scai

+0

我可以指定相對'rpath'嗎? Libtool失敗,錯誤地說:'錯誤:只允許絕對運行路徑' –

+0

我的意思是,我想使用'$$ ORIGIN/libs' –