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做解释)
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36