2011-05-17 62 views
-1

比方說,我有lib1.so一樣,在創建庫:鏈接這是使用另一個共享庫沒有rpath的

gcc 1.cpp -o lib1.so -shared 

而且我還有一個圖書館lib2.so以這種方式創建:

gcc 2.cpp -o lib2.so -shared -L. -l1 

但鏈接到的lib2.so

gcc main.cpp -o main -L. -l2 

給出了一個警告:

warning: lib1.so, needed by lib2.so, not found (try using -rpath or -rpath-link) 

但是AFAIK使用rpath是不鼓勵的,因爲那麼庫不能移動到另一個位置。

如何在不指定「lib1.so」和rpath的情況下將「main」與「lib2.so」鏈接起來?

回答

0

二進制的RPATH標頭優先所以即使圖書館沒有RPATH頭,仍然會發現IF已將其複製到-rpath

提到的目錄