除非我在关闭优化的情况下构建,否则我有一大段代码会崩溃。我正在使用 LLVM 编译器 2.0 构建
我想通过使用#pragma 编译器指令包装有问题的代码来关闭优化;或关闭整个文件的优化。
我一直在研究clang手册和代码;但我什么也没有。
有谁知道如何更改单个 CU(而不是整个应用程序)的优化?
您可以在 Xcode 中设置每个文件的编译器标志。在 Xcode 4(由于 LLVM 2.0 参考,我假设您正在使用它)中,首先在左侧项目浏览器中选择项目。转到 Build Phases 选项卡并展开 Compile Sources 构建阶段。
在那里,您可以设置每个文件的编译器标志,因此您可以尝试转到有问题的文件并-O0
作为标志输入以尝试禁用对该文件的优化。
GCC 有一些你可以为此设置的属性,正如 Johannes 在他的回答中指出的那样,但这些可能不在 LLVM 中。此外,从那里的评论来看,这些似乎甚至不在 Apple 用于构建 iOS 应用程序的定制 GCC 中。