如果我用「-L」編譯我的源代碼。可以找到動態庫libmd5.so。gcc鏈接選項-L:如何指定動態鏈接庫的路徑
gcc main.c -g -O2 -Wall -o main -L. -lmd5 -lcr
但是,如果我離開「-L。」 - 選項,鏈接器不會找到動態庫。我怎樣才能改變,而不必調用「-L。」?
(libmd5.so額外的信息和libmd5.so.1.0.1位於在/ home /用戶/ BA)
如果我用「-L」編譯我的源代碼。可以找到動態庫libmd5.so。gcc鏈接選項-L:如何指定動態鏈接庫的路徑
gcc main.c -g -O2 -Wall -o main -L. -lmd5 -lcr
但是,如果我離開「-L。」 - 選項,鏈接器不會找到動態庫。我怎樣才能改變,而不必調用「-L。」?
(libmd5.so額外的信息和libmd5.so.1.0.1位於在/ home /用戶/ BA)
確實沒有什麼錯-L標誌,所以你不應該着急擺脫它 - 它是在運行時有問題,因爲系統不會加載您鏈接庫至 ?這裏有一些選項:
export LD_LIBRARY_PATH=/home/user/ba
和export LIBRARY_PATH=/home/user/ba
。這隻對當前shell有效。-L .
)。將-L /home/user/ba -Wl,-rpath,/home/user/ba
添加到您的鏈接器標誌。這僅對您正在製作的可執行文件有效。/usr/lib
。這將是系統範圍。上面的方法在運行時也有效果 - 當您運行應用程序時,它也會嘗試在系統的/ home/user/ba或其他庫搜索路徑中查找libmd5.so。
你可以設置LIBRARY_PATH
環境變量。
export LIBRARY_PATH=/home/user/ba
謝謝。我真的不想擺脫它。但我不知道如何改變automake,使「-L」。包括在與Anjuta編譯我的項目時。 – OldMacDonald 2010-07-30 20:01:07