首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在xcconfig变量中附加值?

如何在xcconfig变量中附加值?
EN

Stack Overflow用户
提问于 2009-09-08 13:19:35
回答 6查看 27.7K关注 0票数 48

我使用的是Xcode和.xcconfig文件。我试图在预处理器定义中附加一些值,但我就是不能让它工作。

我尝试了以下方法(以及其中的许多变体),但到目前为止还没有成功:

GCC_PREPROCESSOR_DEFINITIONS = '$(GCC_PREPROCESSOR_DEFINITIONS) NEW_VALUE'

NEW_VALUE符号根本不会添加到预处理器定义中。

有没有人成功地将新值附加到xcconfig文件的变量中?

EN

回答 6

Stack Overflow用户

发布于 2011-03-13 20:39:26

由于这个问题的其他答案中所述的原因,您不能轻松地继承值。

我建议在级联中定义您的设置。让我们假设APP是您的项目前缀,并简单地定义几个CFLAGS:

platform.xcconfig:

代码语言:javascript
复制
APP_PLATFORM_CFLAGS = -DMAS=1

project.xcconfig:

代码语言:javascript
复制
#include "platform.xcconfig"
APP_PROJECT_CFLAGS = -DBETA=1

target-one.xcconfig:

代码语言:javascript
复制
#include "project.xcconfig"
APP_TARGET_CFLAGS = -DSUPER_COOL=1
#include "merge.xcconfig"

target-two.xcconfig:

代码语言:javascript
复制
#include "project.xcconfig"
APP_TARGET_CFLAGS = -DULTRA_COOL=1
#include "merge.xcconfig"

merge.xcconfig:

代码语言:javascript
复制
OTHER_CFLAGS = $(inherited) $(APP_PLATFORM_CFLAGS) $(APP_PROJECT_CFLAGS) $(APP_TARGET_CFLAGS)

然后,您将以target-xxx.xcconfig为基础构建每个目标构建配置。一个真正的项目将使用更复杂的设置,为项目使用一个配置文件,为目标使用一个不同的配置文件,但您已经明白了。

此外,请记住,$(inherited)指的是层次结构中较高的级别,而不是较早的。例如,它继承自目标级别的项目级别。不确定这是否也适用于Xcode4。

这是GTM的简化,去那里了解更多。

票数 36
EN

Stack Overflow用户

发布于 2009-09-09 19:44:00

根据Xcode构建系统指南:

当配置单元包含特定构建设置的多个定义时,Xcode使用该单元中的最后一个定义。请记住,配置文件无权访问它们包含的配置文件中生成的设置定义。也就是说,不能修改包含的配置文件中的定义;只能替换它。

所以,我猜这意味着不可能将值附加到给定的变量。

票数 10
EN

Stack Overflow用户

发布于 2012-09-28 00:30:53

这是可行的:

代码语言:javascript
复制
xcodebuild GCC_PREPROCESSOR_DEFINITIONS='$(value) NEW_VALUE'
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1393987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档