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

kam*_*gin 5 macos clang static-linking

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

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

(系统是OSX)

Car*_*rum 5

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