1

我在 MAC OS X 10.8 上使用 XCode 4.6。

我是这个 IDE 和平台的新手。我有一个我编译的项目,XCode 关闭了优化。

如果我设置发布方案并不重要。

我在名为“ Cannot Disable Debugger with XCode 4.5 ”的线程中看到它与标志“-O0”和“-Os”有关。我知道某些标志设置为“调试模式”,这意味着没有进行优化,代码会生成更多数据来帮助调试。我只是找不到在 XCode 中控制这种行为的单个参数(如 VS 中的 /Mtd)。

XCode 选项中的哪个参数控制这个参数?

此外,在 VS 中,很容易将构建参数视为命令行(在选项下,链接器和构建)。在 XCode 中哪里可以看到?

谢谢。

4

1 回答 1

6

所有编译器和链接器标志都可以在项目或目标的“构建设置”中找到(目标可以覆盖其项目的设置)。要到达那里,请选择项目文件,然后选择您当前的目标,然后转到“构建设置”。选择顶部的“全部”和“级别”以显示所有可用选项及其设置位置(项目或目标 - 最左侧获胜)。

这些选项是分组的,例如,链接器选项和编译器选项,其中大部分是指标志。Xcode 显示一个描述性的名称而不是完整的标志名称。要查看后者,请选择感兴趣的行并在右侧面板(“实用程序”面板)中选择“快速帮助检查器”。您似乎要寻找的标志在 Xcode 中称为“优化级别”。

您可以设置每个选项的值,Xcode 可能会在原始值旁边显示一些元信息,例如,“最快,最小”用于-Os,或“无”用于-O0。您可以独立设置每个配置的所有选项(默认情况下,Release 和 Debug)。实际使用哪种配置取决于您的构建操作。如果您构建并运行,则默认使用 Debug。如果您归档应用程序,则默认使用 Release。但是,您可以通过编辑方案来更改其中的大部分内容。

更新: 要了解发布和调试配置之间的差异,请查看给定目标的“构建设置”。如果选项的值在两种配置(或您可能拥有的任何其他配置)中不同,则选项名称前面有一个箭头,表示不同的值。例如,采用“仅构建活动架构”设置。在调试模式下,它假定您为特定的测试设备构建,因此也不需要包含为其他平台生成的代码。但是,如果您构建应用程序以进行分发,您希望构建一个包含所有目标设备/硬件架构的代码的应用程序。

其他要查看的选项: - 调试信息格式:调试信息(崩溃报告)的存储方式。在 Release 模式下,设置为“DWARF with dSym”,这意味着您的崩溃报告是加密的,因此其他人无法从中获取有意义的信息(符号名称)。

- 在复制期间去除调试符号

-优化级别,如上所述

-预处理器宏:这允许您使您的代码(静态)依赖于构建配置,例如,仅在调试模式下登录

Xcode 在上述“快速帮助检查器”中提供了有关所有这些选项的更多(并且可能更准确)信息,只需选择任何选项即可。

根据我的经验,尽管进行了优化,但发布版本通常更快(即,它们构建得更快)并且尺寸肯定更小。

于 2013-04-01T21:59:53.717 回答