预处理器宏更改两个目标

Posted

技术标签:

【中文标题】预处理器宏更改两个目标【英文标题】:Preprocessor Macro changes both targets 【发布时间】:2011-04-18 21:08:20 【问题描述】:

我有一个项目有两个目标,一个普通版和一个精简版。我想使用#ifdef LITE_VERSION 区分这两个版本。但是,当我将此宏添加到构建设置中的预处理器宏时,它会同时添加到两个目标中。

如何设置仅特定于选定目标的预处理器定义?

【问题讨论】:

【参考方案1】:

您是将其添加到项目的构建设置还是目标的构建设置?听起来您将它添加到项目的构建设置中,这将导致它在项目的所有目标中使用。

【讨论】:

我确实在 XCode 4 中更改了错误级别(项目级别)而不是目标级别(左侧一列)的预处理器宏。回到 XCode 3.2.6 看看它是否真的会在那里工作并且确实如此:-) XCode 4 需要一些时间来适应...... 对 Xcode 4 的一个很好的补充,我发现它对构建设置很有帮助,那就是从组合视图切换到关卡视图。当您选择目标时,您将获得一个已解决的列,该列将用于构建、一个目标列、一个项目列和一个显示默认值的列。您可以编辑目标列和项目列中的值。我喜欢它,因为我可以从一个视图中看出最终构建值的设置位置,并且可以轻松地将其修改为我想要设置的级别。 有没有办法在项目级别设置一些预处理器宏并在目标级别添加一些目标特定的宏?还是这是一个新话题? 好问题,我不确定。目标设置通常会覆盖项目设置,但我不确定是否有办法将项目设置“拉”到目标设置中。 在我不应该在此处发布的主题问题上找到了这个:***.com/questions/4787155/…

以上是关于预处理器宏更改两个目标的主要内容,如果未能解决你的问题,请参考以下文章

xctest - 预处理器宏

仅为某些架构定义预处理器宏

Xcode:测试与调试预处理器宏

预处理器宏扩展为另一个预处理器指令

使用预处理器宏组成另一个宏调用

#if 和 #ifdef Objective-C 预处理器宏有啥区别?