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

时间:2010-05-04 11:15:01

标签: iphone xcode ios-simulator compiler-flags

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

该项目的性质是它不会为具有相同编译设置的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标志。有没有办法在不编辑项目文件的情况下为每个文件设置此标志?

3 个答案:

答案 0 :(得分:7)

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

  • 首先选择您要构建的目标
  • 右键点击源文件
  • 选择“获取信息”
  • 点击“构建”标签
  • 定义您的其他编译器标志

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

答案 1 :(得分:7)

This博客文章由Joshua Nozzi解释如何在Xcode 4中执行此操作,他说:

  

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

答案 2 :(得分:2)

为特定文件调用GetInfo,您可以为此文件设置Build设置。另请参阅XCode项目管理指南。

相关问题