我正在使用Xcode 3.2和xcconfig文件.文件按目标组织.例如,我有一个debug.xcconfig文件和一个文件release.xcconfig.两者都使用通用设置,因此我添加了shared.xcconfig两个包含的文件.
该shared.xcconfig文件如下所示:
GCC_C_LANGUAGE_STANDARD = c99
GCC_WARN_ABOUT_RETURN_TYPE = YES
GCC_WARN_UNUSED_VARIABLE = YES
GCC_PREPROCESSOR_DEFINITIONS = SOME_COMMON_DEFINITIONS
Run Code Online (Sandbox Code Playgroud)
该debug.xcconfig文件如下所示:
#include "Shared.xcconfig"
GCC_OPTIMIZATION_LEVEL = 0
Run Code Online (Sandbox Code Playgroud)
现在,我想DEBUG在debug.xcconfig文件中添加预处理器定义.如此问题所示,以下方法应该起作用:
GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"
Run Code Online (Sandbox Code Playgroud)
这在Xcode 3.2中不起作用.Xcode文档还明确提到修改变量是不可能的,你只能覆盖它们.
你们怎么解决这个问题?
fbr*_*eto 19
我们过去解决这个问题的方法是让每个层组成一个定义的子集,然后在叶级xcconfig中将它们全部组合在一起.
在shared.xcconfig:
GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz
Run Code Online (Sandbox Code Playgroud)
在debug.xcconfig:
GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG)
Run Code Online (Sandbox Code Playgroud)
(使子集变量冗长的优点是它们在词典上与它们用于编写的值类似,使它们更容易在配置文件中找到.)
您还可以在.xcconfig文件中使用以下格式.(适用于xcode 4,未在xcode 3中测试).它只是一个例子,似乎适用于所有设置.
ARCHS=i386 x86_64
ARCHS[config=Debug]=i386
ARCHS[config=Release]=i386 x86_64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9157 次 |
| 最近记录: |