且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2021-08-07 06:48:59



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

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

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

unzipcocos2d-x-2.2.3.zip

unzipcocos2d-x-3.2.zip

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

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

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

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

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

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

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

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

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

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

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

执行以下命令:

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

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

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

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

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

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

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à

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

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

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

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

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

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

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

10设置编译路径

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

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

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

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

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

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

11修改makefile文件

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

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

12 修改makefile

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

13cocos2d-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 $@ $(SHAREDLIBS) $(STATICLIBS) -L$(LIB_DIR)

 

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

        @mkdir -p $(@D)

        $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@

 

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

        @mkdir -p $(@D)

        $(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@

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

15弹出如下窗口:

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

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

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

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

/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

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

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

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

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

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

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

下面进行手机移植:

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

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

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

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

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

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

Eclipse导入的截图:

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

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

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

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

配置方式如下:

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

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

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

进入如下目录:

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

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

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

修改Android.mk文件

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

22配置ADT

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

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

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