5

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

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

(系统为 OSX)

4

1 回答 1

5

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

于 2013-07-17T20:56:42.113 回答