美文网首页
关于-rpath和-rpath-link

关于-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