Xcode OTHER_SWIFT_FLAGS 与 SWIFT_ACTIVE_COMPILATION_CONDITIONS 与预处理器宏 (GCC_PREPROCESSOR_DEFINITIONS)

问题描述 投票:0回答:1

我想添加新指令,例如

SUNNY
。为了我能写
#if SUNNY ... #endif

我应该在构建设置中使用什么为什么以及哪种格式

  • 其他快速旗帜
  • 活跃编译条件
  • 预处理器宏

现在我认为答案是:

其他快速旗帜 -

-DSUNNY

有效编译条件 -
SUNNY
+
$(inherited)

预处理器宏 -
SUNNY=1

,但不确定也不确切知道为什么。

xcode preprocessor
1个回答
0
投票

如果您使用 Swift,则使用

SWIFT_ACTIVE_COMPILATION_CONDITIONS
这是“启用条件编译表达式的编译条件列表。”

仅当

SUNNY
SUNNY
时才设置
true
,即如果它是
1

参考: https://developer.apple.com/documentation/xcode/build-settings-reference#Active-Compilation-Conditions

当您不想覆盖现有设置时,请使用

$(inherited)

要查看如何解析设置,请转至:项目设置(在项目导航器中单击顶部的项目名称,即

xcodeproj
文件的名称)。 然后构建设置 > 级别。

设置继承从右到左显示。因此,已解决的(使用中)设置将被覆盖或从项目设置继承,然后是可能的

.xcconfig
文件,然后是默认值。

您还可以从以下位置查看已解决的设置: 从命令行(终端应用程序)

xcodebuild -showBuildSettings
。如:

xcodebuild -configuration Release -showBuildSettings

OTHER_SWIFT_FLAGS
是“传递给 Swift 编译器的附加标志列表”。如您所示设置标志,
-DSUNNY

参考:https://developer.apple.com/documentation/xcode/build-settings-reference#Other-Swift-Flags

“预处理器宏”是“设置标题”,指的是“设置名称”

GCC_PREPROCESSOR_DEFINITIONS

  • (通过菜单“编辑器”>“显示设置名称/标题”在“设置标题”和“名称”的显示之间切换。)

GCC_PREPROCESSOR_DEFINITIONS
是为clang预处理器设置宏(标志/指令)。 将它们设置为您所示的值,
SUNNY=1
。 (未设置时,该值被解释为
0
)。

另请参阅: https://developer.apple.com/documentation/xcode/adding-a-build-configuration-file-to-your-project

© www.soinside.com 2019 - 2024. All rights reserved.