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