1.将cocos2d-x项目移植到Linux环境下,将cocos2d-x项目移植到手机上



1.将cocos2d-x相关的软件包拷贝到Linux下。

2
对上面的安装包进行解压

3
执行cocos2dx-2.2.3/install-deps-linux.sh(执行这个命令需要有网络)

4
安装QT,命令:sudoapt-get install qt-sdk

5
在cocos2dx-2.2.3目录下,执行./make-all-linux-project.sh

6
要让64位的linux能运行32位的adb,aapt工具,需要安装以下软件

sudo apt-get install git ssh vim ctagsqt-sdk build-essential libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-devlibxi-dev libglfw-dev libzip-dev libcurl4-gnutls-dev
libfontconfig1-devlibsqlite3-dev libglew*-dev openjdk-7-jdk lib32z1 lib32ncurses5 lib32bz2-1.0lib32stdc++6

7
创建一个空项目tank,进入:

/home/toto/cocos/cocos2d-x-2.2.3/tools/project-creator

执行以下命令:

./create_project.py -project tank -languagecpp -package com.toto.tank

8
拷贝window下的Resource和Classes,并将它们放到项目目录下,将tank目录下的Classes和Resources这个两个文件夹删除并将开发好的项目中的Classes和Resource放到tanke目录下。

9
打开QT,执行以下几个过程:


5) create-project.py
创建工程tank

cd tools\project-creator

./create-project -project tank -language cpp -package com.toto.tank

cd ../../projects/tank/proj.linux

make             -- release  版本

./build.sh       -- debug 版本

6)执行编译出来的程序

tank /proj.linux/bin/release/ tank  --release版本

tank /proj.linux/bin/debug/ tank    --debug版本

7)配置QTcreator

a.打开QTcreator
创建工程

file->new -> import project -> import existing project

b.填写project名

c.选择源文件代码目录,这个目录是cocos2dx-2.2.3

d.设置筛选条件,去掉一些不用的目录

e.点next完成项目创建

8)配置QTcreator项目

a.build目录,把build改称你的工程目录下的proj.linux

b.修改build Steps把原有的make all删除,点击add
build steps添加新命令build.sh

FileàNewFile
Or Projectà

填写项目名,选择路径,注意这里的路径是cocos2d-x的根路径

点击Next(注意勾掉自己不需要的东西)

10
设置编译路径

路径是:/home/toto/cocos/cocos2d-x-2.2.3/projects/tank/proj.linux

上面是编译debug的版本的,通过最还是最上面的Rename可以将Default这个名字改成debug名字。下面在添加一个release的。

11
修改makefile文件

进入pro.linux目录下,列出所有的.cpp文件

12 
修改makefile

13
从cocos2d-x中提供的tstCPP中拷贝我们想要的makefile中的内容


EXECUTABLE = tank

COCOS_ROOT = ../../..

#添加下面的内容

INCLUDES = -I.. -I../Classes \

-I$(COCOS_ROOT)/CocosDenshion/include \

-I$(COCOS_ROOT)/extensions/ \

-I$(COCOS_ROOT)/external/ \

-I$(COCOS_ROOT)/external/chipmunk/include/chipmunk

#修改要编译的头文件

SOURCES = main.cpp \

../Classes/AI.cpp \

../Classes/AppDelegate.cpp \

../Classes/Bullet.cpp \

../Classes/Item.cpp \

../Classes/LayerGame.cpp \

../Classes/LayerMenu.cpp \

../Classes/LayerSetup.cpp \

../Classes/LayerStart.cpp \

../Classes/MenuCtrl.cpp \

../Classes/TankEnemy.cpp \

../Classes/TankFriend.cpp

include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk

#SHAREDLIBS += -lcocos2d

#COCOS_LIBS = $(LIB_DIR)/libcocos2d.so

#添加静态库

STATICLIBS += \

$(LIB_DIR)/libextension.a \

$(LIB_DIR)/libbox2d.a \

$(LIB_DIR)/libchipmunk.a

SHAREDLIBS = -lcocos2d -lcocosdenshion -lcurl -lpthread

#COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so

#-L$(LIB_DIR)
制定链接目录

$(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST)

@mkdir -p $(@D)

$(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -o [email protected] $(SHAREDLIBS) $(STATICLIBS) -L$(LIB_DIR)

$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST)

@mkdir -p $(@D)

$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o [email protected]

$(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST)

@mkdir -p $(@D)

$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o [email protected]

14
去掉C++11中的代码,比如去掉override

15
弹出如下窗口:

Executable重要填写的内容如下(默认生成release版本的情况下)

再次执行,出现下面情况:


/home/toto/cocos/cocos2d-x-2.2.3/projects/tank/proj.linux/bin/release/tank: error while loading shared libraries: libcocos2d.so: acannot open shared object file:
No such file or directory

16
将需要的共享库拷贝到/usr/lib目录下

17
接着再在QT中执行得到的结果如下:

下面进行手机移植:

18
导入cocos2dx项目,项目路径是:

/home/toto/cocos/cocos2d-x-2.2.3/projects/tank/proj.android

19
导入cocos2d-x提供的java库,路径是:

/home/toto/cocos/cocos2d-x-2.2.3/cocos2dx/platform/android/java

Eclipse导入的截图:

20
配置WindowsàPreferenceàC/C++àBuildàEnvironment中添加NDK_ROOT

我的NDK路径是:/home/toto/cocos/android-ndk-r9d

配置方式如下:

21
修改Android.mk(修改makefile文件)

进入如下目录:

/home/toto/cocos/cocos2d-x-2.2.3/projects/tank/proj.android/jni

查找出所有以”.cpp”结尾的文件

修改Android.mk文件

22
配置ADT

23 run一下Android程序,最终运行结果(转换模拟器方向的快捷键:Ctrl+F12):

时间: 2024-08-01 10:45:27

1.将cocos2d-x项目移植到Linux环境下,将cocos2d-x项目移植到手机上的相关文章

将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table &#39;puyang.ServiceType&#39; doesn&#39;t exist

将一模一样的项目从win迁移到到linux上报错: 一开始还是以为是linux不能识别hql语句,查找资料发现是因为Liunx服务器上mysql是区分大小写的,而本地是不区分的如:代码是这样写的 @Entity@Table(name = "users") 数据库建的表名称是Users,那么就会出现以上异常. 将windows上面的项目拷贝到Linux环境下报错不能够找到对应的表com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcepti

linux 环境下 用maven 创建项目(子项目分层创建)springMVC项目

项目的整体目录结构 demo(demo.biz,demo.common,demo.config,demo.data,demo.web) demo是最外层的目录,后面各个子项目分别负责业务层,工具.常用辅助类层,配置层,数据层,web层 本文章采用maven构建项目,maven的目录结构 src/main/java src/test/java src/main/resources 1.首先通过eclipse工具创建一个web project,这样会省去很多麻烦 将以下pom.xml文件放到demo

Linux环境下段错误的产生原因及调试方法小结(转)

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于“段

Linux环境下段错误的产生原因及调试方法小结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于“段错

【转】【调试技巧】Linux环境下段错误的产生原因及调试方法小结

本文转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation-fault-in-linux.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误

Linux环境下段错误的产生原因及调试方法小结(转载)

转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间 最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超

Linux环境下进行web增量部署

协同开发时,需要打"补丁包",其实"补丁包"就是"增量部署"-----在原先功能的基础上对项目模块进行升级. 1.linux环境下为Java project项目打补丁 将编译好的*.class文件直接放到Linux原先运行环境(目录)下进行处理. 2.Linux环境下对Java web project项目打补丁 首先建立与运行环境下面一致的目录(如下示例中的WEB-INFO---->classes---->com),将编译好的*.cl

Linux环境下快速项目部署

由于Linux和Java一样开源,所以现在在服务器的部署上基本上都是采用Linux平台作为服务器,然后部署项目!在开发项目的过程中,绝大部分程序猿还是使用最经典的windows操作系统,虽然Linux也有桌面化的系统,对于国人来说,还是不太习惯,并且国内的软件绝大部分都不支持Linux平台,所以在使用的频率那是相当的少! 在开发中,开发环境中编译使用等一系列通过后,还不能说功能已经ok,因为环境一旦变化,出现的问题的可能是自己没有考虑的,所以程序猿都知道真实的环境才是最可靠的,有时候出现的问题,

《从零开始搭建游戏服务器》项目发布到Linux环境

前言: 之前我们提及了如何使用Maven来创建.管理和打包项目,也简单过了一遍Linux中搭建Java开发环境的步骤,现在我们就开始将我们之前开发的项目demo发布到Linux环境下,并让它正常运行起来. 发布思路: 使用Maven将项目打包为.jar 将项目的.jar和项目所有依赖的jar包都复制到Linux下 创建项目启动脚本来启动项目 准备工作: 查询Linux系统机器的Ip地址:方法很简单,在Linux中打开终端输入ifconfig即可查到Ip地址为192.168.35.130: 修改E