相关疑难解决方法(0)

通过Xcode方案添加预处理器定义

我目前有一些我需要构建的iPhone应用程序的特殊"风味".理想情况下,我想为每个"风味"设置一个方案,每个方案将定义(或设置)一个或多个预处理器定义,我可以使用它们在我的代码中进行分支,甚至可能预处理我的info.plist文件.这显然可以通过多个目标完成,但由于我可以拥有应用程序的许多不同"风格",因此使用方案来保持目标数量下降会很棒.我目前的想法是在一个预操作脚本中添加这些预处理器定义,但我不能在我的生活中找到任何更新GCC_PREPROCESSOR_DEFINITIONS的方法.由于它是一个环境变量,我不应该有权附加到GCC_PREPROCESSOR_DEFINITIONS吗?

xcode gcc ios

16
推荐指数
2
解决办法
1万
查看次数

Xcode:如何使用多个xcconfig文件设置调试环境?

我正在使用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)

现在,我想DEBUGdebug.xcconfig文件中添加预处理器定义.如此问题所示,以下方法应该起作用:

GCC_PREPROCESSOR_DEFINITIONS = "$(GCC_PREPROCESSOR_DEFINITIONS) DEBUG"
Run Code Online (Sandbox Code Playgroud)

这在Xcode 3.2中不起作用.Xcode文档还明确提到修改变量是不可能的,你只能覆盖它们.

你们怎么解决这个问题?

xcode xcconfig

15
推荐指数
2
解决办法
9157
查看次数

xcconfig:用于调试/发布的不同预处理器宏

我创建并应用了一个简单的 .xcconfig 文件,其中包含

GCC_PREPROCESSOR_DEFINITIONS[config=Debug] = FOODEBUG
GCC_PREPROCESSOR_DEFINITIONS[config=Release] = FOORELEASE
Run Code Online (Sandbox Code Playgroud)

和 main.cpp 包含

#include <iostream>

// This warning IS shown
#if DEBUG
#warning DEBUG is set to 1
#endif

// This warning IS NOT shown
#ifdef FOODEBUG
#warning FOODEBUG is set
#endif

// This warning IS NOT shown
#ifdef FOORELEASE
#warning FOORELEASE is set
#endif

int main(int argc, const char * argv[])
{
    // insert code here...
    std::cout << "Hello, World!\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我想知道为什么在 main.cpp 中,既没有定义 FOODEBUG 也没有定义 FOORELEASE ??! …

xcode preprocessor xcconfig

5
推荐指数
1
解决办法
5381
查看次数

标签 统计

xcode ×3

xcconfig ×2

gcc ×1

ios ×1

preprocessor ×1