如何在cocos2d-x项目中包含Box2d?

如何在cocos2d-x项目中包含Box2d?,cocos2d-x,cocos2d-x-3.0,cocos2d-x-3.x,Cocos2d X,Cocos2d X 3.0,Cocos2d X 3.x,在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

在文件顶部添加以下行:

$(调用导入添加路径,$(本地路径)/../../../../cocos2d/external/Box2D/include)

现在一切都应该正常了就这么简单:)

我假设如果您使用的是Box2d,您不会想使用花栗鼠,因此请确保通过将
-DCC\u ENABLE\u Chipmunk\u INTEGRATION
标志设置为
0
来禁用它。您可以在相应的
Application.mk
文件中找到此标志