在 OSX 上构建巨大的 C++ 源代码时出现 LLVM Clang 6.0 致命错误

LLVM Clang 6.0 fatal error when building a huge C++ source code on OSX

我正在构建一个非常庞大的源代码,使用 MS 编译器和 Intel 编译器构建得很好,但 Clang 最终是这样的:

fatal error: error in backend: Section too large, can't encode r_address (0x1000008) into 24 bits of scattered relocation entry.

如果我删除它的一半,它就会开始正常工作,所以显然存在一些限制。这似乎是 XCode 4.5 的一个众所周知的问题,但现在是 XCode 6.2,它仍然不起作用!!我可以启用任何选项来使其工作吗?例如,在 Windows 上,我需要使用 /BIGOBJ 来使编译器正常工作。

通过将源文件切割成多个源文件解决。令人遗憾的是,编译器错误会导致这种情况,因为除非编译器提供全局优化,否则它可能需要大量工作并且会降低性能。