我正在链接静态库,我想知道如何处理llvm / Clang中的死代码剥离。我找不到任何提示Clang有一些等效的-Wl, - gc-section或-dead_strip的文档。
我认为在更高的优化级别会自动执行一些死代码消除,但gcc也是如此,对吧?然而,gcc通过上面提到的标志提供了一些明确的控制。 Clang没有提供,或者我错过了什么?
(系统是OSX)
答案 0 :(得分:5)
死剥离是链接器功能,而不是编译器功能。结果,gcc和clang都没有。这就是你必须使用-Wl
的原因 - 你将那个标志传递给链接器。 Mac OS X链接器使用-dead_strip
。您可以将标志直接传递给您的clang调用,它会自动传递它。