【问题标题】:Is there any difference between -Xlinker -export-dynamic and -rdynamic?-Xlinker -export-dynamic 和 -rdynamic 之间有什么区别吗?
【发布时间】:2013-06-10 13:25:41
【问题描述】:

这是一个非常直接的问题。是否有任何区别:

-Xlinker --export-dynamic

-r动态

何时传递给 g++?阅读 GNU 文档,似乎它们在功能上是相同的,但我想确定一下。

【问题讨论】:

    标签: c++ g++ gnu ld


    【解决方案1】:

    这是一个非常直接的问题。 -Xlinker -export-dynamic-rdynamic之间有什么区别

    视情况而定。

    如果您使用 GNU-ld(或 gold)作为链接器,那么 -Xlinker --export-dynamic(注意:您的问题中缺少破折号)完全等同于 -rdynamic

    但是在例如Solaris,-rdynamic 将做正确的事情,并且不会将任何内容传递给链接器(Sun ld 显然是 exports all symbols by default),而 -Xlinker ... 变体将导致 link error

    【讨论】:

    • 谢谢,您能否详细说明做正确的事情是什么意思?您的意思是 -rdynamic 实际上应该删除符号吗?但是在 GNU-ld 中,因为它默认不导出它选择做相反的符号?
    • 做正确的事 == 将任何必要的标志传递给底层链接器以导出符号。当底层链接器是 gnu-ld 时,该标志可能是 --export-dynamic,或者其他系统链接器的标志,或者根本不需要标志(如果不需要,例如在 Solaris 的情况下)。
    猜你喜欢
    • 2022-11-18
    • 2017-01-09
    • 2016-11-09
    • 2011-01-05
    • 2013-09-13
    • 2017-04-05
    • 2014-09-18
    • 2015-06-14
    • 2011-05-23
    相关资源
    最近更新 更多