1. Linux编译程序,通过-Wl,-rpath=../lib, --enable-new-dtags指定运行时动态库查找路径,生成exe后,通过ldd xxx 查看发现有部分依赖的动态库查找路径仍然是系统默认库路径,而不是通过-rpath指定的路径。通过readelf -d xxx查看 RUNPAT已经是-rpath指定的目录。 通过chrpath -r "../lib" xxx 修改未生效的so查找路径,仍然不起作用。
指定的查找路径下面有对应的动态库,这个不能修改查找路径的动态库, 是加载的动态库自己依赖的其他地方三动态库,所以我readelf -d 看不到。 但是我又不能更改动态库依赖的其他的查找位置。改了也不生效。
第三方动态库
那你看看 ldd 解析出来的真实名字和你定义的文件夹下是否有对应的,注意文件的后缀。