使用eclipse调试cocos2d-x C++ 代码(编写+真机调试)
2014-10-28 17:59
579 查看
先看此文:http://blog.csdn.net/tt5267621/article/details/8941084(首先ecplise已经可以编译cocos2d-x再看此文)
你已经下载coccos2d-x和NDK,并且会使用
英文好的同学可以直接查看官方说明Using the NDK plugin,这里我简单翻译一下
打开eclipse,在菜单里选择Help->Install New Software…
弹出的窗口里第一个框”Work with:“后面输入
稍等一会,下面会出来”Developer Tools”和”NDK Plugins”,全部选中,Next,同意协议,等安装完成后,重启eclipse
eclipse重启后,到Eclipse->Preferences->Android->NDK,在这里设置你的NDK目录,比如我的,我设置到
安装完成
这里我以
假设你的eclipse是干净的,也就是左边的Package Explorer栏是空空的
导入libcocos2d-x到eclipse,右击Package Explorer空白区域,Import->Existing Android Code Into Workspace,然后在下一个窗口的Root Directory那里定位到
按照上面的方法导入
现在eclipse里已经有了两个项目:libcocos2dx,SimpleGame
因为我们不使用build-native.sh来编译,所以要先把资源文件得到在android项目的assets下,具体就是把
准备工作完毕
在eclipse的Package Explorer里右击SimpleGame项目,选”Properties”,打开项目属性框
按下面设置Tool Chain Editor
再设置ndk-build的命令,为
这个时候,你选择Project->Build All,会出现错误,意思是NDK_MODULE_PATH设置不对
这里我们不设置NDK_MODULE_PATH,因为设置了它会让我们无法调试C++代码,解决上面问题的办法是:把编译过程中需要的库拷贝到系统默认的NDK_MODULE_PATH里,跟我来做
复制cocos2d-2.1rc0-x-2.1.3目录下的
复制cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/third_party/android/prebuilt目录的所有到NDK的sources目录下
这样我们复制到NDK的sources目录下的目录一共有
回到eclipse,再次Project->Build All,应该会编译成功
(关于这一步:可以在Android.mk文件中,
$(call import-module,cocos2dx)引入模块之前加入一下两句,但能不能调试未测试
$(call import-add-path, cocos2dx所在目录)
$(call import-add-path, cocos2dx所在目录/cocos2dx/platform/third_party/android/prebuilt))
为了可以给C++下断点,我们必须修改一下当前的项目文件结构
移动cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/Classes目录到cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面
修改cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面的Android.mk,把原来的
Android.mk中:
修改为
也就是使文件指向正确的位置
Project->Build ALL 编译项目,应该可以成功编译
我们给Classes目录下的HelloWorldScene.cpp文件里的ccTouchesEnd方法下一个断点,这样游戏运行后,点击屏幕应该可以触发我们的断点
把手机连接到电脑上,右击SimpleGame, 选 Debug As->Android Native Application
如果需要选择手机,选你想调试的
游戏运行起来后,触摸屏幕,可以看到
eclipse自动切换到了Debug界面,而且成功的断点下来了,并且变量可以在右边窗口查看 Debug界面上的按钮就不再多说了,就是继续执行,单步执行什么的几个,摸索一下便知
PS: 上述操作中我们复制了cocos2dx的好多文件到NDK的目录下面去,显的有点繁琐,这样做的目录是为了避开去设置NDK_MODULE_PATH,如果一旦设置了NDK_MODULE_PATH,就会使的调试不可行,可能有更好的方法,如果你知道,或者有什么问题都可以直接在文章下面留言
你已经下载coccos2d-x和NDK,并且会使用
build_native.sh和eclipse编译cocos2d-x项目
安装NDK Plugin
英文好的同学可以直接查看官方说明Using the NDK plugin,这里我简单翻译一下打开eclipse,在菜单里选择Help->Install New Software…
弹出的窗口里第一个框”Work with:“后面输入
https://dl-ssl.google.com/android/eclipse/
稍等一会,下面会出来”Developer Tools”和”NDK Plugins”,全部选中,Next,同意协议,等安装完成后,重启eclipse
eclipse重启后,到Eclipse->Preferences->Android->NDK,在这里设置你的NDK目录,比如我的,我设置到
/android/android-ndk-r8e
安装完成
导入cocos2d-x目录下的示例游戏
这里我以cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame这个自带的小游戏为例子来说明一下.
假设你的eclipse是干净的,也就是左边的Package Explorer栏是空空的
导入libcocos2d-x到eclipse,右击Package Explorer空白区域,Import->Existing Android Code Into Workspace,然后在下一个窗口的Root Directory那里定位到
cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/android/java这个目录,选中libcocos2dx,导入
按照上面的方法导入
cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android
现在eclipse里已经有了两个项目:libcocos2dx,SimpleGame
设置使用ndk-build来编译
因为我们不使用build-native.sh来编译,所以要先把资源文件得到在android项目的assets下,具体就是把cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/Resources下面的所有文件复制到
cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/assets下面去
准备工作完毕
在eclipse的Package Explorer里右击SimpleGame项目,选”Properties”,打开项目属性框
按下面设置Tool Chain Editor
再设置ndk-build的命令,为
ndk-build NDK_DEBUG=1,确定,关闭对话框
这个时候,你选择Project->Build All,会出现错误,意思是NDK_MODULE_PATH设置不对
这里我们不设置NDK_MODULE_PATH,因为设置了它会让我们无法调试C++代码,解决上面问题的办法是:把编译过程中需要的库拷贝到系统默认的NDK_MODULE_PATH里,跟我来做
复制cocos2d-2.1rc0-x-2.1.3目录下的
cocos2dx,CocosDenshion,extensions,external这4个目录到你的NDK的sources目录下,以我的电脑为例,就是/android/android-ndk-r8e/sources
复制cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/third_party/android/prebuilt目录的所有到NDK的sources目录下
这样我们复制到NDK的sources目录下的目录一共有
cocos2dx,CocosDenshion,extensions,external, libcurl,libjpeg,libpng,libtiff,libwebp这几个
回到eclipse,再次Project->Build All,应该会编译成功
(关于这一步:可以在Android.mk文件中,
$(call import-module,cocos2dx)引入模块之前加入一下两句,但能不能调试未测试
$(call import-add-path, cocos2dx所在目录)
$(call import-add-path, cocos2dx所在目录/cocos2dx/platform/third_party/android/prebuilt))
修改项目文件结构,以使cdt可以识别我们的C++文件
为了可以给C++下断点,我们必须修改一下当前的项目文件结构移动cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/Classes目录到cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面
修改cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面的Android.mk,把原来的
Android.mk中:
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp \ ../../Classes/GameOverScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
修改为
LOCAL_SRC_FILES := hellocpp/main.cpp \ Classes/AppDelegate.cpp \ Classes/HelloWorldScene.cpp \ Classes/GameOverScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/Classes
也就是使文件指向正确的位置
Project->Build ALL 编译项目,应该可以成功编译
调试
我们给Classes目录下的HelloWorldScene.cpp文件里的ccTouchesEnd方法下一个断点,这样游戏运行后,点击屏幕应该可以触发我们的断点 把手机连接到电脑上,右击SimpleGame, 选 Debug As->Android Native Application
如果需要选择手机,选你想调试的
游戏运行起来后,触摸屏幕,可以看到
eclipse自动切换到了Debug界面,而且成功的断点下来了,并且变量可以在右边窗口查看 Debug界面上的按钮就不再多说了,就是继续执行,单步执行什么的几个,摸索一下便知
Enjoy!
PS: 上述操作中我们复制了cocos2dx的好多文件到NDK的目录下面去,显的有点繁琐,这样做的目录是为了避开去设置NDK_MODULE_PATH,如果一旦设置了NDK_MODULE_PATH,就会使的调试不可行,可能有更好的方法,如果你知道,或者有什么问题都可以直接在文章下面留言
相关文章推荐
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS) (转)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS XCode)
- 使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)
- 使用eclipse调试cocos2d-x Native C++ 代码
- 【COCOS2DX-游戏开发之十】使用eclipse调试cocos2d-x Native C++ 代码
- 使用Visual Studio 2015调试Android平台Cocos2d-x游戏的C++代码
- Windows 下使用Eclipse CDT 远程调试 Linux C/C++ 程序
- Linux下使用Eclipse编译C/C++代码时遇到问题的说明
- Eclipse下调试C++代码
- android使用ndk-stack调试JNI部分的C/C++代码
- 在Eclipse下使用手机真机调试Android应用 (sony ericsson mt15i semc hsusb device 驱动)
- cocos2d-x学习之旅(五):1.5 使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机
- Mac上利用Eclipse编译Cocos2d-x的C++代码