假设我有一个库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”?
答案 0 :(得分:0)
二进制文件中的RPATH头优先,所以即使库没有RPATH头,仍然会找到 IF ,你已将其复制到-rpath
中提到的目录