一直疑惑一个事情,cmake 在编译依赖库的时候有一些动态库的链接会出现不同的情况
链接库的方式都是通过指定链接库的在工程目录里的路径,编译时没有问题说明库的摆放位置是能搜索到的,但是运行时会有两种情况
这样的区别是什么呢?来源于使用方法还是三方库的生成方法
1
liuguangxuan 2021-10-05 21:36:08 +08:00 via Android
读了两遍,愣是没看懂啥意思。
|
2
leimao 2021-10-05 22:26:34 +08:00 via iPhone
ldd 只看 LD_LIBRARY_PATH,没记错的话。CMake 的 link 过程的文件和目录可以自定义。
|
3
mingl0280 2021-10-06 06:17:02 +08:00 via Android
检查生成结果的 rpath 是否带了./
|
4
PowerDi OP @mingl0280 用 cmake 的时候不怎么会设置 rpath,默认是不是都会把./添加进去的?就是有的库指定链接的时候运行前 ldd 也能找到 cmake 里显式指定的路径,但是另外一些就必须是 rpath(./)下才能找到
|
8
jackchenly 2022-01-02 21:51:43 +08:00
ldd 没找到是因为操作系统不知道你的库在哪,可以先加到系统里 /etc/ld.so.conf
|