关于-rpath和-rpath-link
作者:
小胖_20c7 | 来源:发表于
2019-06-06 16:36 被阅读0次关于rpath
-Wl,-rpath:
运行时so查找路径(DT_RPATH)
-Wl,-rpath,--enable-new-dtags
运行时so查找路径(DT_RUNPATH)
搜索顺序:
DT_RPATH > LD_LIBRARY_PATH > DT_RUNPATH
关于rpath-link
-Wl,-rpath-link:
当exe-->liba.so-->libb.so时
链接exe的时候,需要liba.so(liba.so又需要libb.so)。这时候,链接器是需要检查这些so文件是否存在的
具体过程如下:
1 对于liba.so,会根据绝对或者相对路径检查是否存在
2 对于-l选项的so,会到gcc链接路径去检查(/lib64,/usr/lib64等),以及-L指定的路径去检查
3 对于libb.so,就不一样了(因为它不是exe需要,是运行的时候,动态链接器需要的,所以是动态查找)
1 -rpath-link(在链接的时候,模拟该路径为运行时路径,但不写入exe文件)
2 真正运行时路径查找(有省略):
1 到-rpath查找(这个选项是真正运行时路径,是写入exe文件的)
2 ldconfig中
3 exe直接链接时指定的libb.so也可以(我不确定,但是试验是这样)
本文标题:关于-rpath和-rpath-link
本文链接:https://www.haomeiwen.com/subject/rtjuxctx.html
网友评论