Xcode中特定文件的特定编译器标志

Jas*_*ien 9 iphone xcode compiler-flags ios-simulator

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

该项目的性质是它不会为具有相同编译设置的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"; }; };
Run Code Online (Sandbox Code Playgroud)

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

所以澄清一下,问题是:

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

Rob*_* VS 8

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

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


Pau*_*l R 7

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

  • 首先选择您要构建的目标
  • 右键单击源文件
  • 选择"获取信息"
  • 单击"构建"选项卡
  • 定义您的其他编译器标志

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