0

我遇到了 XCode、LLVM 和_DEBUG定义的问题。或者更具体地说,它似乎是带有下划线的东西。

这是我第二次遇到这样的错误。这次我针对 PhysX lib 进行编译。

/Library/Frameworks/PhysX.framework/Versions/3.2.1/include/foundation/PxPreprocessor.h:316:35:表达式中的预期值

它抱怨的那一行:

#if !defined(PX_CHECKED) && _DEBUG

它指向 _DEBUG 之后。如果我删除下划线,它编译得很好(我上次也在类似的库上做过,请参阅http://www.ogre3d.org/forums/viewtopic.php?f=2&t=78990)。但现在我对这个错误感到不安。是什么原因造成的,它是什么意思?

设置:方言:C++11,libc++(尝试了不同的,比如 GNUC++11 Max OSX 10.8 XCode 5 LLVM 5.0

4

1 回答 1

4

以下划线开头的名称保留用于实现。相反,请使用不以下划线开头的名称,除非您特别尝试访问某些特定于实现的功能。

在实现特定的宏上使用 defined():

#if !defined(PX_CHECKED) && defined(_DEBUG)

如果出于某种原因您期望它起作用,那么您还没有解释它是什么。没有理由这应该起作用。你期待它做什么?

于 2013-10-07T22:47:23.247 回答