链接使用另一个没有rpath的共享库的共享库

时间:2011-05-17 13:08:38

标签: unix gcc dynamic-linking

假设我有一个库lib1.so就是这样创建的:

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”?

1 个答案:

答案 0 :(得分:0)

二进制文件中的RPATH头优先,所以即使库没有RPATH头,仍然会找到 IF ,你已将其复制到-rpath中提到的目录