C++ 如何在Xcode中定义DOBJC_OLD_DISPATCH_原型?
我使用Xcode 11,需要复制此编译器命令:C++ 如何在Xcode中定义DOBJC_OLD_DISPATCH_原型?,c++,xcode,clang,C++,Xcode,Clang,我使用Xcode 11,需要复制此编译器命令: cc -g -Wall -Wall -Wextra -std=c99 -pedantic \ -DOBJC_OLD_DISPATCH_PROTOTYPES -c -o example.o example.c 将OBJC\u OLD\u DISPATCH\u prototype添加为用户定义的宏,对构建设置没有任何价值,这没有帮助。在源代码中定义它也失败了,因为它告诉我Xcode已经通过命令行定义了它。尽管将一些可疑标志设置为No,但Xco
cc -g -Wall -Wall -Wextra -std=c99 -pedantic \
-DOBJC_OLD_DISPATCH_PROTOTYPES -c -o example.o example.c
将OBJC\u OLD\u DISPATCH\u prototype
添加为用户定义的宏,对构建设置没有任何价值,这没有帮助。在源代码中定义它也失败了,因为它告诉我Xcode已经通过命令行定义了它。尽管将一些可疑标志设置为No
,但Xcode似乎一直在执行#define OBJC_OLD_DISPATCH_prototype 1
。我怎样才能禁用它
我不知道Xcode是如何工作的,但我看到两点 在您发布的图像中,您要求定义一个类似于
DOBJC\u OLD\u DISPATCH\u prototype
,但在命令行中显示它是OBJC\u OLD\u DISPATCH\u prototype
。你想定义哪一个?(注意图像中的第一个D
:它不在命令行中。)
对于第一个D
,命令行参数为:
-DDOBJC_OLD_DISPATCH_PROTOTYPES
(要定义的是-D
,其余的是定义的。)
通常,应该在预处理器选项中进行定义,而不是在编译器中进行定义。你可以看到一个例子,尽管我不知道这个例子是否过时。(不过,应该有一个选项用于设置预处理器定义。)
如果Xcode将其定义为1
,则您可以随时重新定义它:
#ifdef OBJC_OLD_DISPATCH_PROTOTYPES
#undef OBJC_OLD_DISPATCH_PROTOTYPES
#define OBJC_OLD_DISPATCH_PROTOTYPES
#endif
(或DOBJC\u OLD\u DISPATCH\u原型
)
这将消除1
你有更多的信息