为啥我的编译器指令定义无法识别? (迅速)

Posted

技术标签:

【中文标题】为啥我的编译器指令定义无法识别? (迅速)【英文标题】:Why my compiler directive definition is not recognised? (Swift)为什么我的编译器指令定义无法识别? (迅速) 【发布时间】:2016-10-26 06:54:54 【问题描述】:

我有 3 个目标。假设 TargetA、TargetB 和 TargetC。我在 Targets > Target name > Build Settings > Apple LLVM 7.1 - Custom Compiler Flags > Other C Flags > Debug & Release 中为每个目标添加了不同的编译器指令。

我把-dTargetA放在TargetA上,-dTargetB放在TargetB上,-dTargetC放在TargetC上。然后我在 AppDelegate 的 didFinishLaunchingWithOptions 上有这段代码:

#if TargetA
    print ("TargetA");
    #else
    #if TargetB
        print ("TargetB");
        #else
             #if TargetC
             print ("TargetC");
             #else
             print ("Not Recognised");
        #endif
    #endif
#endif

但是当我运行它时,我在输出控制台上看到“未识别”,即使我从任何目标运行。怎么了?谢谢。

【问题讨论】:

【参考方案1】:

哦,没关系。原来我放错地方了。我应该把它放在 Swift 自定义编译器标志中,而不是 C 或 C++ 标志中。但是这么多答案告诉我要放入 C 编译器标志...

【讨论】:

以上是关于为啥我的编译器指令定义无法识别? (迅速)的主要内容,如果未能解决你的问题,请参考以下文章

为啥链接器无法识别我的链接器脚本中定义的入口点

使用 qmake 成功编译 SSE 指令(但无法识别 SSE2)

为啥 Netbeans 无法识别我的 Grails 应用程序中的 Maven 依赖项导入?

为啥 vue 在第一次编译时无法识别 TS 语法,但在第二次编译时可以正常工作?

为啥WPF无法识别我的这个DynamicResource

为啥 Javascript 无法识别我的构造函数?