我正在将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


debug.xcconfig文件如下所示:

#include "Shared.xcconfig"
GCC_OPTIMIZATION_LEVEL = 0


现在,我想在DEBUG文件中添加debug.xcconfig预处理程序定义。如this question中所示,以下方法应该起作用:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"


这在Xcode 3.2中不起作用。 Xcode文档还明确提到无法修改变量,您只能覆盖它们。

你们将如何解决这个问题?

最佳答案

过去我们解决此问题的方法是让每一层组成定义的子集,然后在叶级xcconfig中将它们全部组合在一起。

shared.xcconfig中:

GCC_PREPROCESSOR_DEFINITIONS_SHARED = qFoo qBar qBaz


debug.xcconfig中:

GCC_PREPROCESSOR_DEFINITIONS_DEBUG = qDebug
GCC_PREPROCESSOR_DEFINITIONS = $(GCC_PREPROCESSOR_DEFINITIONS_SHARED) $(GCC_PREPROCESSOR_DEFINITIONS_DEBUG)


(使子集变量变得冗长的优点是,在字典上它们类似于用于组成的值,从而使它们在配置文件中更容易找到。)

关于xcode - Xcode:如何使用多个xcconfig文件设置调试环境?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1402641/

10-11 22:15