什么是clang相当于-rdynamic gcc标志?

时间:2014-01-22 09:33:26

标签: c++ macos clang

我找不到任何类似的选项,将所有函数名称都包含在最终版本二进制文件中。或clang默认执行此操作?

3 个答案:

答案 0 :(得分:8)

至少clang 3.3似乎支持-rdynamic,但clang --help和联机帮助页都没有记录它。 (如果您使用的是OSX,则不需要-rdynamic)

gcc -rdynamic说“ - 动态            将标志--export-dynamic传递给支持它的目标上的ELF链接器。“

所以clang也应该能够对-Wl,--export-dynamic做同样的事情。

答案 1 :(得分:8)

此问题的正确答案是-Wl,-export_dynamic -Wl,--export-dynamic

只有在ELF平台上使用GNU链接器时,

-Wl,--export-dynamic才是正确的。

这个问题与OS X有关。

来源: http://www.opensource.apple.com/source/ld64/ld64-236.3/src/ld/Options.cpp

...
else if ( strcmp(arg, "-export_dynamic") == 0 ) {
    fExportDynamic = true;
}
...

答案 2 :(得分:1)

我的Google-fu告诉我你可以用

替换它
-Wl,--export-dynamic

GCC在传递-rdynamic时通常会传递给链接器。我会首先尝试一下,看看是否有必要。