使用eclipse调试cocos2d-x C++ 代码(编写+真机调试,放弃VS)

简介: <h1 style="margin:0px; padding:0px; font-family:Arial; line-height:26px"><span style="color:rgb(255,0,0)">前提条件:</span></h1> <p style="margin-top:0px; margin-bottom:1.5em; padding-top:0px; padding

前提条件:

先看此文:http://blog.csdn.net/tt5267621/article/details/8941084(首先ecplise已经可以编译cocos2d-x再看此文)

  • 你已经下载coccos2d-x和NDK,并且会使用build_native.sheclipse编译cocos2d-x项目
  • 安装NDK Plugin

    英文好的同学可以直接查看官方说明Using the NDK plugin,这里我简单翻译一下

    1. 打开eclipse,在菜单里选择Help->Install New Software…
    2. 弹出的窗口里第一个框”Work with:“后面输入https://dl-ssl.google.com/android/eclipse/
    3. 稍等一会,下面会出来”Developer Tools”和”NDK Plugins”,全部选中,Next,同意协议,等安装完成后,重启eclipse
    4. eclipse重启后,到Eclipse->Preferences->Android->NDK,在这里设置你的NDK目录,比如我的,我设置到/android/android-ndk-r8e
    5. 安装完成

    导入cocos2d-x目录下的示例游戏

    这里我以cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame这个自带的小游戏为例子来说明一下.

    假设你的eclipse是干净的,也就是左边的Package Explorer栏是空空的

    1. 导入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,导入
    2. 按照上面的方法导入cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android
    3. 现在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下面去


    准备工作完毕

    1. 在eclipse的Package Explorer里右击SimpleGame项目,选”Properties”,打开项目属性框
    2. 按下面设置Tool Chain Editor 
    3. 再设置ndk-build的命令,为 ndk-build NDK_DEBUG=1,确定,关闭对话框 
    4. 这个时候,你选择Project->Build All,会出现错误,意思是NDK_MODULE_PATH设置不对 
    5. 这里我们不设置NDK_MODULE_PATH,因为设置了它会让我们无法调试C++代码,解决上面问题的办法是:把编译过程中需要的库拷贝到系统默认的NDK_MODULE_PATH里,跟我来做
    6. 复制cocos2d-2.1rc0-x-2.1.3目录下的cocos2dx,CocosDenshion,extensions,external这4个目录到你的NDK的sources目录下,以我的电脑为例,就是/android/android-ndk-r8e/sources
    7. 复制cocos2d-2.1rc0-x-2.1.3/cocos2dx/platform/third_party/android/prebuilt目录的所有到NDK的sources目录下
    8. 这样我们复制到NDK的sources目录下的目录一共有cocos2dx,CocosDenshion,extensions,external, libcurl,libjpeg,libpng,libtiff,libwebp这几个
    9. 回到eclipse,再次Project->Build All,应该会编译成功

    修改项目文件结构,以使cdt可以识别我们的C++文件

    为了可以给C++下断点,我们必须修改一下当前的项目文件结构

    1. 移动cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/Classes目录到cocos2d-2.1rc0-x-2.1.3/samples/Cpp/SimpleGame/proj.android/jni下面
    2. 修改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 编译项目,应该可以成功编译

    调试

    1. 我们给Classes目录下的HelloWorldScene.cpp文件里的ccTouchesEnd方法下一个断点,这样游戏运行后,点击屏幕应该可以触发我们的断点 
    2. 把手机连接到电脑上,右击SimpleGame, 选 Debug As->Android Native Application
    3. 如果需要选择手机,选你想调试的
    4. 游戏运行起来后,触摸屏幕,可以看到

    eclipse自动切换到了Debug界面,而且成功的断点下来了,并且变量可以在右边窗口查看 Debug界面上的按钮就不再多说了,就是继续执行,单步执行什么的几个,摸索一下便知

    Enjoy!

    PS: 上述操作中我们复制了cocos2dx的好多文件到NDK的目录下面去,显的有点繁琐,这样做的目录是为了避开去设置NDK_MODULE_PATH,如果一旦设置了NDK_MODULE_PATH,就会使的调试不可行,可能有更好的方法,如果你知道,或者有什么问题都可以直接在文章下面留言
相关文章
|
4月前
|
C++
C++ 语言异常处理实战:在编程潮流中坚守稳定,开启代码可靠之旅
【8月更文挑战第22天】C++的异常处理机制是确保程序稳定的关键特性。它允许程序在遇到错误时优雅地响应而非直接崩溃。通过`throw`抛出异常,并用`catch`捕获处理,可使程序控制流跳转至错误处理代码。例如,在进行除法运算或文件读取时,若发生除数为零或文件无法打开等错误,则可通过抛出异常并在调用处捕获来妥善处理这些情况。恰当使用异常处理能显著提升程序的健壮性和维护性。
78 2
|
4月前
|
算法框架/工具 C++ Python
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
根据相机旋转矩阵求解三个轴的旋转角/欧拉角/姿态角 或 旋转矩阵与欧拉角(Euler Angles)之间的相互转换,以及python和C++代码实现
279 0
|
13天前
|
NoSQL 编译器 C语言
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。
C语言调试是开发中的重要技能,涵盖基本技巧如打印输出、断点调试和单步执行,以及使用GCC、GDB、Visual Studio和Eclipse CDT等工具。高级技巧包括内存检查、性能分析和符号调试。通过实践案例学习如何有效定位和解决问题,同时注意保持耐心、合理利用工具、记录过程并避免过度调试,以提高编程能力和开发效率。
27 1
|
16天前
|
Java Android开发
Eclipse 代码模板
Eclipse 代码模板
21 3
|
21天前
|
Java Android开发
Eclipse Debug 调试
Eclipse Debug 调试
23 1
|
27天前
|
算法 安全 C++
提高C/C++代码的可读性
提高C/C++代码的可读性
41 4
|
2月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
321 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
3月前
|
C++
继续更新完善:C++ 结构体代码转MASM32代码
继续更新完善:C++ 结构体代码转MASM32代码
|
3月前
|
C++ Windows
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
HTML+JavaScript构建C++类代码一键转换MASM32代码平台
|
3月前
|
C++
2合1,整合C++类(Class)代码转换为MASM32代码的平台
2合1,整合C++类(Class)代码转换为MASM32代码的平台

推荐镜像

更多