linux -rpath , runpath以及$ORIGIN的区别
首先rpath其实跟runpath性质一样,但是他们对于LD_LIBRARY_PATH的优先级不同,rpath要高于他,而runpath要低于他
再者rpath和runpath都能接收绝对路径或者相对路径,其中相对路径是基于current working directory来的,但是很有可能你当前的工作目录是在别的地方,然后在别的地方去呼这个exe,这个时候的CWD其实就被你改变,那么很可能exe就找不到对应的lib
这个时候其实还有一种路径的表示方法 - 离exe的相对路径,注意这个跟current working directory的相对路径不同,他不会因为你的CWD的改变而改变,他只会以当前的exe为起点来进行相对路径的查询,做法就是你在-Wl,-rpath,.的地方加上-Wl,-rpath,'$ORIGIN'即可 (单引号没问题,双引号别忘了采用相关的\来跳脱,防止bash做解释)
相关推荐
-
PHP虚拟主机模拟socket发送GET,POST请求2025-04-19 00:59:11
-
php 5.6 已死,关于 php 7 你要知道的几件事!2025-04-19 00:56:15
-
从一道CTF题目谈PHP中的命令执行2025-04-19 00:34:15
-
nginx location在配置中的优先级2025-04-19 00:31:04
-
恶意PHP脚本或成大规模垃圾邮件活动的来源,超半数网站受损!
恶意PHP脚本或成大规模垃圾邮件活动的来源,超半数网站受损!2025-04-19 00:25:44