在 cocos2d-x v3.13.1 中,如果我只想使用 Box2d(而不是集成的花栗鼠物理),我所要做的就是:
#include <Box2d/Box2d.h>
但是升级到v3.17之后就不行了。相反,有一个错误说:
词法或预处理器问题:找不到文件
如何以最少的麻烦包含 Box2d ?我的项目是跨平台的(iOS 和 Android),因此我不必为每个平台设置单独的步骤,而是在寻找与 3.13 一样简单的东西——只需键入 #include 等...
在 cocos2d-x v3.13.1 中,如果我只想使用 Box2d(而不是集成的花栗鼠物理),我所要做的就是:
#include <Box2d/Box2d.h>
但是升级到v3.17之后就不行了。相反,有一个错误说:
词法或预处理器问题:找不到文件
如何以最少的麻烦包含 Box2d ?我的项目是跨平台的(iOS 和 Android),因此我不必为每个平台设置单独的步骤,而是在寻找与 3.13 一样简单的东西——只需键入 #include 等...
以下说明仅适用于 Android。
首先不要#include <>
用于非标准库包含,而是使用简单的引号。
要回答您的问题,它无法识别的原因是链接器不知道在哪里可以找到 Box2d 头文件。
只需打开您的 Android.mk 文件,该文件应位于YourProjectRoot/proj.android/app/jni/Android.mk
.
在文件顶部添加这一行:
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external/Box2D/include)
现在一切都应该正常了,就这么简单:)
我假设如果您使用的是 Box2d,您将不想使用 Chipmunk,因此请确保通过将-DCC_ENABLE_CHIPMUNK_INTEGRATION
标志设置为 来禁用它0
。您可以在相应的Application.mk
文件中找到此标志。