deepin搭建cocos 2dx 4.0 开发环境
一、下载cocos源码
下载cocos 2dx 源码。下载完成后,将新增cocos2d-x-4.0.zip的问题,复制到工作目录。
二、编译源码
1、在工作目录解压源码。
unzip -x cocos2d-x-4.0.zip
2、安装开发依赖
cocos自带了依赖安装工具:install-deps-linux.sh。 但是其强制安装, 可能导致安装版本存在问题, 对其做如下修改:
#!/bin/bash
echo "This Shell Script will install dependencies for cocos2d-x"
echo -n "Are you continue? (y/n) "
read answer
if echo "$answer" | grep -iq "^y" ;then
echo "It will take few minutes"
else
exit
fi
sudo apt-get update
# run 32bit applicatio: needed for lua relase mode as luajit has 32bit version
# https://askubuntu.com/questions/454253/how-to-run-32-bit-app-in-ubuntu-64-bit
sudo dpkg --add-architecture i386
DEPENDS='libc6:i386 libncurses5:i386 libstdc++6:i386'
DEPENDS+=' libx11-dev'
DEPENDS+=' libxmu-dev'
DEPENDS+=' libglu1-mesa-dev'
DEPENDS+=' libgl2ps-dev'
DEPENDS+=' libxi-dev'
DEPENDS+=' libzip-dev'
DEPENDS+=' libpng-dev'
DEPENDS+=' libcurl4-gnutls-dev'
DEPENDS+=' libfontconfig1-dev'
DEPENDS+=' libsqlite3-dev'
DEPENDS+=' libglew-dev'
DEPENDS+=' libssl-dev'
DEPENDS+=' libgtk-3-dev'
DEPENDS+=' binutils'
sudo apt-get install --yes $DEPENDS
然后安装:
cd cocos2d-x-4.0
bash install-deps-linux.sh
如果存在问题, 那么修复对应依赖问题。
3、编译
mkdir linux-build
cd linux-build
cmake ../
这时如果出现一下告警:
CMake Warning (dev) at /usr/share/cmake-3.22/Modules/FindOpenGL.cmake:315 (message):
Policy CMP0072 is not set: FindOpenGL prefers GLVND by default when
available. Run "cmake --help-policy CMP0072" for policy details. Use the
cmake_policy command to set the policy and suppress this warning.
FindOpenGL found both a legacy GL library:
OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
and GLVND libraries for OpenGL and GLX:
OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
OpenGL_GL_PREFERENCE has not been set to "GLVND" or "LEGACY", so for
compatibility with CMake 3.10 and below the legacy GL library will be used.
Call Stack (most recent call first):
cmake/Modules/CocosBuildHelpers.cmake:273 (find_package)
cmake/Modules/CocosConfigDepend.cmake:16 (cocos_find_package)
cmake/Modules/CocosConfigDepend.cmake:91 (cocos2dx_depend)
cocos/CMakeLists.txt:131 (use_cocos2dx_libs_depend)
This warning is for project developers. Use -Wno-dev to suppress it.
这是GL版本版本导致的。 在$COCOS_HOME/CmakeLists.txt中, 添加GL版本指定:
# set default minimum deployment target
if(XCODE)
if(NOT DEFINED CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET)
SET (CMAKE_XCODE_ATTRIBUTE_IPHONEOS_DEPLOYMENT_TARGET 8.0)
endif()
endif()
if (POLICY CMP0072)
set(OpenGL_GL_PREFERENCE LEGACY)
endif()
重新到 $COCOS_HOME/linux-build中执行:
cmake ../
make -j10
注意其中-j10是处理器数量, 根据编译机器填写。
三、添加环境变量
编译完成后, 在$COCOS_HOME/tools/cocos2d-console/bin 存在相关工具。
在~/.bashrc中添加如下内容:
# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_HOME=/media/champ/110603F2110603F2/game/cocos2d-x-4.0
export COCOS_CONSOLE_ROOT=$COCOS_HOME/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH
# Add environment variable COCOS_X_ROOT for cocos2d-x
export COCOS_X_ROOT="/media/champ/110603F2110603F2/game"
export PATH=$COCOS_X_ROOT:$PATH
# Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x
export COCOS_TEMPLATES_ROOT=$COCOS_HOME/templates
export PATH=$COCOS_TEMPLATES_ROOT:$PATH
保存后, 在新的终端中可以查询到cocos的版本信息:
四、创建cocos项目工程
在工作目录中, 使用:
cocos new ougame -p com.champ.mcc -l cpp -d ./
创建一个名为ougame 的项目, 项目结构如下:
.
├── Classes
│ ├── AppDelegate.cpp
│ ├── AppDelegate.h
│ ├── HelloWorldScene.cpp
│ └── HelloWorldScene.h
├── CMakeLists.txt
├── cocos2d
│ ├── AUTHORS
│ ├── CHANGELOG
│ ├── cmake
│ ├── CMakeLists.txt
│ ├── cocos
│ ├── CONTRIBUTING.md
│ ├── docs
│ ├── download-deps.py
│ ├── extensions
│ ├── external
│ ├── install-deps-linux.sh
│ ├── issue_template.md
│ ├── licenses
│ ├── README.md
│ └── tools
├── proj.android
│ ├── app
│ ├── build.gradle
│ ├── gradle
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── proj.ios_mac
│ ├── ios
│ └── mac
├── proj.linux
│ ├── CMakeCache.txt
│ ├── CMakeFiles
│ └── main.cpp
├── proj.win32
│ ├── build-cfg.json
│ ├── game.rc
│ ├── main.cpp
│ ├── main.h
│ ├── res
│ └── resource.h
└── Resources
├── CloseNormal.png
├── CloseSelected.png
├── fonts
├── HelloWorld.png
└── res
五、编译项目
按照顺序执行如下命令:
cd ougame/proj.linux
# 生成编译所需文件
cmake -G "Unix Makefiles" ../
# 编译
make -j10
在执行cmake时, 可能存在 “cmake --help-policy CMP0072"的问题, 安照之前的处理办法, 在ougame/CMakeLists.txt中做相同操作,就可以排除编译异常。
编译完成后,在ougame/proj.linux/bin生成对应的二进制文件。
该二进制文件可以直接运行。
该项目, 可以直接使用vscode, clion,codeblocks等工具直接打开。