9

我的任务是处理一个具有一些令人困惑的属性的项目。

该项目的性质是它不会为 iPhone 模拟器和具有相同编译设置的 iPhone 设备编译。我认为这与需要根据目标平台专门针对 x86 或 arm6/7 进行编译有关。

因此,在 Xcode 的 Build Settings 视图中查看项目的构建设置时,我无法为每个特定文件设置特定的编译器标志。然而,在这个项目上工作的前一位开发人员以某种方式宣布了这一行:

CE7FEB5710F09234004DE356 /* MyFile.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7FEB5510F09234004DE356 /* MyFile.m */; settings = {COMPILER_FLAGS = "-fasm-blocks -marm -mfpu=neon"; }; };

有没有办法在不手动编辑项目文件的情况下做到这一点?我知道编辑项目文件可能会导致完全破坏它,所以我宁愿不这样做,因为我显然不像以前的开发人员那样了解。

所以为了澄清,问题是:

编译模拟器时构建失败,除非我删除-fasm-blocks标志。-fasm-blocks除非我添加标志,否则编译设备时构建失败。有没有办法在不手动编辑项目文件的情况下为每个文件设置这个标志?

4

3 回答 3

9

Joshua Nozzi 的这篇博文解释了如何在 Xcode 4 中做到这一点,他说:

... 在 Project Navigator 中选择您的项目,选择相关目标(您可能只有一个),然后选择 Build Phases 选项卡。展开编译源阶段和中提琴!Compiler Flags 列允许您为该目标设置每个文件的标志。

于 2012-10-10T14:11:26.460 回答
7

您可以为各个源文件定义额外的编译器标志,如下所示:

  • 首先选择你要构建的目标
  • 右键单击源文件
  • 选择“获取信息”
  • 单击“构建”选项卡
  • 定义额外的编译器标志

但是,在您的情况下听起来更好的解决方案只是复制目标并有两个目标 - 一个用于实际设备,一个用于模拟器。从项目级别继承通用构建设置,并根据需要调整每个目标的构建设置。

于 2010-05-04T11:20:18.127 回答
2

为特定文件调用 GetInfo,您可以在此处设置该文件的 Build 设置。另请参阅有关此内容的 XCode 项目管理指南。

于 2010-05-04T11:20:51.820 回答