我们有时会修改debug目录名称,比如debug-rl-kv,此时可执行程序就跑不了了。我们可以先检查
# 1. 查看当前 RUNPATH
readelf -d ./intarkdb_cli | grep RUNPATH
#或者
sudo apt-get install patchelf
patchelf --print-rpath ./intarkdb_cli
可以设置
patchelf --set-rpath "/new/path/to/lib:/another/path" ./intarkdb_cli
但是,并非这样做就够了,因为,正如标题所说:
RUNPATH 只影响直接依赖,不传递!
打个比方:
./intarkdb_cli (RUNPATH: /mnt/d/git/openGauss-embedded/output/debug-rl-kv/lib)
↓ 依赖
libintarkdb.so (RUNPATH还没变!)
↓ 依赖
libgmssl.so.3 (所以找不到!)

被折叠的 条评论
为什么被折叠?



