Clang在静态链接期间删除死代码(gcc相当于-Wl, - gc-sections)

时间:2013-07-17 20:54:39

标签: macos clang static-linking

我正在链接静态库,我想知道如何处理llvm / Clang中的死代码剥离。我找不到任何提示Clang有一些等效的-Wl, - gc-section或-dead_strip的文档。

我认为在更高的优化级别会自动执行一些死代码消除,但gcc也是如此,对吧?然而,gcc通过上面提到的标志提供了一些明确的控制。 Clang没有提供,或者我错过了什么?

(系统是OSX)

1 个答案:

答案 0 :(得分:5)

死剥离是链接器功能,而不是编译器功能。结果,gcc和clang都没有。这就是你必须使用-Wl的原因 - 你将那个标志传递给链接器。 Mac OS X链接器使用-dead_strip。您可以将标志直接传递给您的clang调用,它会自动传递它。