windows下(免cygwin)Eclipse调试C++(Cocos2dx Android )

原文链接: http://www.cnblogs.com/zouzf/p/4202537.html

先说windows下的,mac下的在最后

环境:win8.1、java 1.5、Eclipse 4.3.1、ADT bundle 22.6.2.v20140321、NDK r8e、cocos2dx 2.2.3

前提:下载好cocos2dx、NDK(r8e以上版本可以不装cygwin) 、ADT bundle(带Eclipse、sdk等各种插件),配置好 JAVA_HOME、CLASSPATH、NDK_ROOT、ANDROID_SDK等环境变量;配置好Cocos2dx的Android开发环境,即可以通过ndk-build编译cocos2dx的工程生成 .so文件、生成生成jar包、能成功运行HelloCpp工程。注意:所有涉及到的目录不要有中文或者空格!

1、把Eclipse的workSpace目录里的 .metadata 文件删除,恩,Eclipse我设置了不自动build~~ 然后打开Eclipse把cocos2dx工程(Q:\cocos2d-x-2.2.3\cocos2dx\platform\android)和HelloCpp工程(Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\proj.android)导进去:File->import->Android->Existing Android Code Into WorkSpace->next<在Root Directory里填上cocos2dx工程所在的目录,按回车键,cocos2dx的工程就出现,并且会自动选上,点finish,搞定。同样,也把HelloCpp工程导进去。

2、TestCpp工程报错说不认识bash :Error: Program "bash" not found in PATH

解决:(1):给Eclipse配置好NDK路径

   (2):设置TestCpp项目的C/C++ builder :ndk-build.cmd NDK_DEBUG=1 。注意:NDK_DEBUG=1   等号左右不要留有空格

3、build一下TestCpp工程,会报错:

1 D:/new_soft/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml   

把工程里的AndroidManifest.xml文件里<uses-sdk android:minSdkVersion="8"/>的8改成9。查了一下文章,说这是NDK的一个bug:AndroidManifest.xml里的minSdkVersion设置不能小于项目用于编译的SDK版本,而HelloCpp项目用于编译的sdk版本是 2.2.3.。。。也就是 sdkversion 是 9.。。。。

4、刷新,再build,还报错:

1 jni/Android.mk:19: *** Android NDK: Aborting.    .  Stop.
2 Android NDK: jni/Android.mk: Cannot find module with tag ‘cocos2dx‘ in import path   
3 Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
4 Android NDK: The following directories were searched:
5 Android NDK:         

说的是Android.mk文件里的19行 找不到 cocos2dx,大概意思是找不到这个cocos2dx这个模块,类似于#include头文件时要加上对应的搜索路径的意思,那就补上这个模块的上一层目录:打开Android.mk文件,在最后一行$(call import-module,cocos2dx) 之前加上一行: $(call import-add-path,Q:/cocos2d-x-2.2.3)。也就是加上cocos2dx这个文件夹所在的目录给mk文件去搜索。

注意里面的反斜杠:我们直接从windows下拷贝路径时 是 Q:\cocos2d-x-2.2.3的,要把 \ 改成 / 。如果你的cocos2dx工程所在的目录比较深,有很多层,要把路径里所有的 \ 都改成 /

5、刷新,再build,还报错:

1 Android NDK: Q:/cocos2d-x-2.2.3/cocos2dx/Android.mk: Cannot find module with tag ‘libjpeg‘ in import path  
2 Q:/cocos2d-x-2.2.3/cocos2dx/Android.mk:175: *** Android NDK: Aborting.    .  Stop.
3 Android NDK: Are you sure your NDK_MODULE_PATH variable is properly defined ?
4 Android NDK: The following directories were searched:
5 Android NDK:       

恩,同样的错误,说的cocos2dx工程的Android.mk文件的175行上找不到 libjepg,注意,cocos2dx工程的mk文件不在它的工程目录下,而是在它的上两层,在 Q:/cocos2dx-2.2.3/cocos2dx 下面,打开它,在175行的$(call import-module,libjpeg)之前插入一句: $(call import-add-path,Q:/cocos2d-x-2.2.3/cocos2dx/platform/third_party/android/prebuilt)。注意斜杠转成反斜杠! 因为libjepg是第三方库,放在cocos2dx\platform\third_party\android\prebuilt这个目录里的。

注意:第4、5步添加 ndk module 时都是用了绝对路径,在不同电脑上都要重新配置一下。你也可以改成相对路径,可惜我还不太熟悉mk文件的一些东西,以后再改~~

6、再build,嗯,好像成功了,成功生成了libhellocpp.so文件~~看到libs文件夹下生成了一个gdbserver文件和gdb.setup文件没,就是因为上面设置 NDK_DEBUG=1 所以生成的,gdbserver会被部署到手机里。当触发C++断点时,相当于手机端的gdbserver是服务端,会发送一些信息到Eclipse这边,Eclipse这边的gbdserver是客户端,Eclipse这边的gdbserver接收到信息就进行相关操作,嗯,我猜的~~

下面说的是如何调试cpp文件

1、右键cocos2dx工程,选择 Android tools -> Add Native Support,so文件的名字不用改,点finish

2、刷新,build cocos2dx工程,报错:

D:/new_soft/android-ndk-r8e/build/core/add-application.mk:128: Android NDK: WARNING: APP_PLATFORM android-9 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml  

把工程里的AndroidManifest.xml里 <uses-sdk android:minSdkVersion="8"/> 的 8 改成 9

3、刷新,build cocos2dx工程,没报错了,再build HelloCpp工程,也没报错了

4、加入需要调试的C++文件:

  (1):右键 hellocpp工程,new->folder

    

  (2):选中HelloCpp,下面点 advanced,选择最后一个选项:Link to alternate location(Linked Folder),在下面输入要导进来的cpp所在的目录(这里我填了 Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\Classes),点 finish即可:

      

注意:文件夹名 不能和工程里已有的文件同名

5、打开刚才加进来的CCNode.cpp文件,发现里面一大堆错误,包括各种#include的.h文件找不到,各种不能识别的符号或者各种 unknown symbol~~,我猜这个问题是因为只导入少数几个cpp文件,这几个cpp文件依赖的其他的cpp文件没有加进来的原因,如果把所有cpp文件都加进来估计是可以的,我没试过~~(因为libcocos2dx工程在目录cocos2dx下面,不能直接把cocos2dx这个目录加进来,要把里面的CocosDenshion、extensions等目录一个个加进来~~)

解决方法:右键cocos2dx工程,属性,C/C++ General->Code Analysis,选择 使用项目设置,然后把下面的勾都去掉,如下:

  

6、刷新,再build两个项目,应该都没有问题了

7、在刚才加进来的随便一个cpp文件里断点,右键选择HelloCpp工程,debug as->android native application(请用真机调试,用模拟器的话不知道有啥问题不),居然报错:

  

8、原来是assert文件夹里的资源没有,可能也是相对路径又问题引起的吧,没有把Resources里的资源拷过来吧,把Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\Resources里的所有东西拷到Q:\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\proj.android\assets下,再跑,debug as->android native application,成功!

注意:调试C++的时候,gdbServer会有所延迟(大概有好几秒,和你的电脑和调试的手机的性能有关吧),所以你的断点最好不要加在程序启动的那些代码里,上面截图就是加在一个菜单的点击事件里的,点击关闭菜单时触发。

线程、单步、变量观察~~perfect~~

PS:因为我用的Eclipse加了个汉化包。。。但又想在文章涉及到Eclipse设置的一些东西尽量用英文版的。。。所有有些地方用文字说的和截图的有所差别,见谅~~

感觉这个东西的重点就在于了解Android.mk文件吧,把里面的配置看懂,在这过程中看报什么错,就对应修改就是了。反正暂时我还是不怎么了解,所以文章里充满了大量的我猜等字眼~~先用着,再研究吧

mac下也差不多是这个步骤,如果大家有什么问题的话,把详细信息贴出来,我尽量把我知道的分享出来~~

mac下明明配置了NDK_ROOT,Eclipse运行的时候一直说找不到:直接在对应工程的mk文件的首行设置 NDK_ROOT="~~~~~~~~~~"  (~~~表示你的ndk所在的目录,如: D:/new_soft/android-ndk-r8e)

原文链接: http://www.cnblogs.com/zouzf/p/4202537.html

时间: 2024-10-22 06:55:29

windows下(免cygwin)Eclipse调试C++(Cocos2dx Android )的相关文章

在windows下使用Cygwin模拟unix环境 并安装apt-cyg svn等插件

在windows下使用Cygwin模拟unix环境,并安装apt-cyg,svn等工具 一.Cygwin的安装 1. 下载Cygwin,这个可以到这里下载 ,至于使用32位的还是64位的版本可以根据自己的系统而定,打开下载好的setup-x86.exe(以64bitwindws系统为例) . 安装过程中注意勾选下面的包,为了后面的操作,我们有必要在这里选择一些必要的包进行安装: (1) curl:(2) git* (git,git-completion, git-gui, gitk):(3) l

windows下安装python +eclipse pydev 插件

目录: 一. Python简介 二. 安装python 1. 在windows下安装 2. 在Linux下安装 三. 在windows下配置python集成开发环境(IDE) 1. 在Eclipse中安装PyDev插件 2. 配置Python Interpreters 四. 创建Python Project 五. 编写HelloWorld 六. 小结 一. Python简介: Python在Linux.windows.Mac os等操作系统下都有相应的版本,不管在什么操作系统下,它都能够正常工作

mysql数据库在Linux和windows下免安装实现以及框架开发碰到的问题

2017年7月23号下午5:20分,上周我根据自己的实际情况,总结了mysql数据库在windows系统下和linux系统下免安装版本的实现,以及在项目开发中遇到的数据库报错,今天整理出来,以供日后学习之用,同时,我给自己制定了一个计划,每周日会将自己本周碰到的一些问题记录下来,在周日整理出来发布在博客上面,2017年7月23号是我的第一周,我要坚持10年,卢小朋说到做到,加油! 一.linux安装说明 说明 mysql-5.7.14-linux.zip部署包支持在CentOS 6.x/7.x

windows下源码安装调试postgresql

环境:windows 10 postgresql版本:postgresql-9.6.5 使用工具:vs2017社区版 辅助工具:perl.diff.flex.bison 相关工具下载地址: perl下载链接:http://pan.baidu.com/s/1i5aPilB 密码:k6f0 diff.flex.bison下载链接:http://pan.baidu.com/s/1hrHotes 密码:4ku6 以上工具均为绿色版,解压后,设置环境变量即可 此处使用的编译调试工具为vs2017社区版,该

Windows 下常见的反调试方法

稍稍总结一下在Crack或Rervese中比较常见的一些反调试方法,实现起来也比较简单,之后有写的Demo源码参考,没有太大的难度. ①最简单也是最基础的,Windows提供的API接口:IsDebuggerPresent(),这API实际上就是访问PEB的BeingDebugged标志来判断是否处于调试状态. if (IsDebuggerPresent()) //API接口 { AfxMessageBox(L"检测到调试器"); } else { AfxMessageBox(L&qu

Mongodb的windows下免安装

正常途径访问Mongodb的官方网站,它只提供了msi 安装包的下载,这种方式带来的好处是直接作为windows的服务进行管理. 但是在有些情况下,我们希望不作为windows的服务进行安装,比如受到公司IT 安全策略的限制,管理员权限不会提供给我们,那么在这种情况下,我们希望能够通过免安装的方式使用mongodb. 操作方法: 1, 访问mongodb官方网站提供的文件列表 https://www.mongodb.org/dl/win32 2, 此列表提供了很多的windows版本,其中还包括

Note1: windows下Python IDE(Eclipse+Pydev)

毕设想做一个个性化音乐推荐系统,真的是从零开始学起,通过<推荐系统实践>大致地了解了一些基础知识,目前在啃<集体智慧编程>. 选用的开发环境是 Eclipse+Pydev . 安装JDK 配置环境变量 安装python 刚开始安装成了32位的,也是有点小粗心,下载地址http://python.org/download/. 安装完配置环境变量: 点击控制面板->系统->高级->环境变量.在“系统变量”找到 PATH 变量,编辑这个变量,把python的安装路径加到

windows下安装python+eclipse

PART I(下载安装包): 1.下载最新版的Eclipse标准包: http://www.eclipse.org/downloads/ 根据你的操作系统,选择对应版本的eclipse-jee-mars-2-win32 将下载好的压缩包,解压缩到指定位置,如e:\eclipse\ 2.下载Java JDK包: http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择Java Platform(JDK) 再新出来的页

golang在Windows下Sublime Text开发调试环境的配置

一.前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发.在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如果你从中得到了受益并且同时拥有博客园账户的话,衷心希望能得到你的一个小小[推荐]以资鼓励. 本人操作系统为Windows 8.1 64bit,开发工具选择如下:go1.4.2.windows-amd64Sublime Text 2(插件GoSublime/GoGdb) gdb.gcc(安装mingw