【发布时间】:2011-05-28 08:24:45
【问题描述】:
我有一个项目,其中包含一个主要的 Cocoa 应用程序、一堆插件和几个帮助应用程序。辅助应用程序有自己的目标,因为我希望应用程序可以在没有插件的情况下构建,所以主应用程序有它自己的目标(称为 AppTarget),但我通常将它全部构建在聚合目标中(称为 TargetA)。我还有另一个带有 TargetA 的聚合目标、另一个插件和一个附加的复制文件构建阶段 (TargetB)。这一切都按预期工作。我正在尝试创建一个新的聚合目标 TargetC,它包含 TargetA,并且将具有(但还没有)运行 Shell 脚本构建阶段。
我遇到的问题是我正在尝试使用 GCC_PREPROCESSOR_DEFINITIONS 来#define 一个符号 TARGETC,用于条件编译(#ifdef TARGETC ... #endif),但它没有包含在构建参数中当我查看构建日志并且应用程序的行为与构建日志匹配时 - GCC_PREPROCESSOR_DEFINITIONS 失败(我尝试了 TARGETC 和 TARGETC=1。我尝试添加 OTHER_CFLAGS 用户定义设置(将其设置为 -DTARGETC=1 ),但这也没有用。
文档说聚合目标上的用户定义的设置会渗透到它们的子目标,但似乎这只下降了一层 - TargetA 可能会得到它,但 AppTarget 肯定没有。这是错误、预期行为还是我做错了什么?
【问题讨论】:
-
我应该提一下,这是 Snow Leopard 10.6.7 上的 Xcode 3.2.6。
标签: xcode preprocessor nested targets