好的,假设我已经构建了一些名为libImmortal.aand的库libUglyFace.so。第一个是在~/LakeOfBlood/lib里面,第二个是装在槽make install里的/usr/lib。在奖金我做ldconfig
现在在~/LakeOfBlood我想编辑CMakeList.txt。我添加库:
project (LOB)
.
.
.
# (the binary will be built in ~/LakeOfBlood)
link_directories(${LOB_BINARY_DIR}/lib)
.
.
.
target_link_libraries(LakeOfBlood UglyFace Immortal)
但是当我编译ld时找不到Immortal
我仍然可以通过更改链接:
target_link_libraries(LakeOfBlood UglyFace Immortal)
经过
target_link_libraries(LakeOfBlood UglyFace /home/OftheBeast/LakeOfBlood/Immortal.a)
然后ld工作。
...但是,是的,有 af* * * * * * “但是”...
当我启动 LakeOfBlood 时,我得到了:
./LakeOfBlood: error while loading shared libraries: libUglyFace.so: cannot open shared object file: No such file or directory
这两个库不是我的,它们带有一个名为OccultGod. 如果我这样做,ldd OccultGod我得到:
libUglyFace.so => /home/OfTheBeast/LakeOfBlood/lib/libUglyFace.so (0x0000666)
所以现在,
- 我怎么能说
OccultGod使用/usr/lib/libUglyFace.so而不是上面的那个?(通过他自己的CMakeList.txt) - 我怎样才能解决我
CMakeList.txt的问题libImmortal.a - 你能解释一下为什么
LakeOfBlood看不到吗/usr/lib/libUglyFace.so?我的意思/usr/lib是标准路径对吗?然后我认为那里的每个库都会被任何二进制文件自动找到......