64位ubuntu下建立Cocos2d-x开发环境与运行HelloWorld----真正新手的遭遇。

来源:互联网 发布:批量下载软件down 编辑:程序博客网 时间:2024/06/06 03:23

Hello World 程序是每个新手的第一课。同样,我也面临着这一课的考验。相信多数自学者,最令人印象深刻,也最纠结的就是开发环境的建立。简单的工作,但往往要花上很长时间去搞定,尤其是当自己的原有环境跟目标环境差距较大的时候能花上几天的功夫,实在让人难熬。
我的本职工作时做C++开发,后来无意中看到了Cocos2d游戏编程,于是对其产生了浓厚兴趣,从此制定了一套学习计划。今天我将第一个课的所有波折记录下来。可以说,为了完成Hello World 在手机上的运行,我参考了数套教程中的环境建立部分,还有各种博客和帖子,最终把遇到的所有问题解决,但始终没有在一个帖子上看到所有问题的解决办法。因此我将这些问题集中起来,写成一篇文章,以供能够为后来搜到此贴的人们提供有价值的参考。


操作系统:Ubuntu 14.04 LTS x64, 64位系统为我带来巨大麻烦,以至于后面不得不手动安装32位支持库。
在环境的建立过程中我分为两步:

第一步:建立linux开发环境,让程序可以在本机上跑起来。官网对应的地址是:http://cocos2d-x.org/programmersguide/F/

第二步:建立Android编译与调试环境,这里采用手机在线调试。由于本人以前做单片机较多,所以喜欢硬件在线调试,感觉很爽。官网关于Android环境建立的地址是:http://cocos2d-x.org/programmersguide/C/


第一步:

1.首先按照官网的用户指南中的要求,下载Cocos2d-x源文件包,我的下载版本是最新的稳定版3.3。解压之后,进入到build目录下,里面有一个install-deps-linux.sh,通常直接运行这个文件就可以自动检查和安装缺失的依赖包。但这个脚本并不能将所有的包安装完毕。我们需要观察他的log,会在开头地方提示没有匹配的包,这时候就需要手工使用sudo apt-cache search 来搜索关键字了,我遇到的就是glew库无法找到匹配,但实际上在apt里面时存在的,因此手动搜索,之后把长得比较像的都安装上,就可以了。如果没有Cmake则只需要sudo apt-get install cmake即可

2. $mkdir linux-build    
    $ cd linux-build    
    $ cmake ../..
这几条时官网指南给出的命令,很简单,就是生成Makefile文件。如果前面一步中所有包都安装好了,这步就会很顺利,如果有错误提示,则要根据提示中说缺失的包进行搜索安装。

3.$ make
一个命令,make就开始了,有任何lib的缺失都会导致错误并终止编译,这时还要根据缺失的lib名称进行搜索和安装,直到编译通过为止。如果第一步中仔细观察log,并将所有未匹配的包全都装上,2和3会进行的很顺利。
编译结束后会在bin/cpp-tests/中出现cpp-tests可执行文件,运行这个文件就会出现一个简介程序的界面。这里我就不贴图了。
第一步比较容易,只要解决依赖包问题,一切都会很顺利。第二步就不同了,主要问题集中在SDK的更新和环境变量的修改。eclipse下ADT安装等。


第二步:

1.准备软件包,国内用户会很难直接下载Google.com下面的文件,具体解决办法只能是从国内其他网站下载或者翻墙,或者用VPN,本人用的时VPN所以下载还是很方便的,没有VPN,最蛋疼的就是SDK的更新部分,必须在线才行,不能翻墙的话这个地方很难弄。
包名和地址如下,直接从官网复制过来的。
Cocos2d-x v3.3 https://cocos2d-x.org/download
JDK/SDK 1.6+ http://www.oracle.com/technetwork/java/javase/downloads/index.html
Android SDK http://developer.android.com/sdk/index.html
NDK r9d+ https://developer.android.com/tools/sdk/ndk/index.html
Apache Ant http://ant.apache.org/bindownload.cg

另外需要注意,这里面还需要安装eclipse,直接apt-get就可以安装,之后一定要安装ADT的plugin,从eclipse中选择help->install New software 之后把http://dl-ssl.google.com/android/eclipse/ 粘贴进去,下面就会显示ADT的软件包,之后下一步直到完成即可。这一步很重要,否则无法从eclipse直接导入android项目,而只能是通用项目,直接导入的通用项目时不能编译通过的。

2.安装与配置。

jdk多数系统已经自带,命令 java -version 可以查看版本,如果没有或者版本没有达到要求可以直接用apt-get更新一个。这里有个教程,不过没有经过验证:

http://www.cnblogs.com/plinx/archive/2013/06/01/3113106.html


首先解压Adnroid SDK, NDK , Ant到某个目录如~/APP_Game

进入Cocos2d-x解压后的目录,运行setup.py,会分别提示输入SDK,NDK,和ANT的目录。只要按要求输入刚才解压后各自对应的路径即可。之后其会在~/.bashrc中加入相应的环境变量。如果自己用的时c shell还要手动将这些环境变量改到自己的.cshrc中。本人一直使用的时c shell,所以此处进行了小小的移植。此处一般会很顺利。


3. 建立自己的工程目录。

在第一步中,我们是直接在cocos2d-x源码包中提供的示例中进行编译的。不过通常情况下,不会对源文件进行操作,因此当我们建立好上一步的环境变量之后,就可以使用cocos new 命令在任何地方建立一个单独的工程目录。以后开发自己的游戏也是在这个工程上进行。cocos命令是cocos root下的一个可执行文件。如果环境配置好后没有cocos命令的提示,则重新开启一个命令窗口,之后 echo $COCOS_CONSOLE_ROOT 看看是否指定到了源码目录下的tools/cocos2d-console/bin, 否则说明前一步没有做好。当然这些东西也完全可以自己手动编辑。 我把自己的贴在下面,根据这个自己手动编辑一个也是完全没有问题的:

# Add environment variable COCOS_CONSOLE_ROOT for cocos2d-x
export COCOS_CONSOLE_ROOT=/home/user1/App_cocos2d/cocos2d-x-3.3/tools/cocos2d-console/bin
export PATH=$COCOS_CONSOLE_ROOT:$PATH

# Add environment variable COCOS_X_ROOT for cocos2d-x
export COCOS_X_ROOT=/home/user1/App_cocos2d/cocos2d-x-3.3
export PATH=$COCOS_X_ROOT:$PATH

# Add environment variable COCOS_TEMPLATES_ROOT for cocos2d-x
export COCOS_TEMPLATES_ROOT=/home/user1/App_cocos2d/cocos2d-x-3.3/templates
export PATH=$COCOS_TEMPLATES_ROOT:$PATH

# Add environment variable NDK_ROOT for cocos2d-x
export NDK_ROOT=/home/user1/App_cocos2d/android-ndk-r10d
export PATH=$NDK_ROOT:$PATH

# Add environment variable ANDROID_SDK_ROOT for cocos2d-x
export ANDROID_SDK_ROOT=/home/user1/App_cocos2d/android-sdk-linux
export PATH=$ANDROID_SDK_ROOT:$PATH
export PATH=$ANDROID_SDK_ROOT/tools:$ANDROID_SDK_ROOT/platform-tools:$PATH

# Add environment variable ANT_ROOT for cocos2d-x
export ANT_ROOT=/usr/share/ant/bin
export PATH=$ANT_ROOT:$PATH

以上就是cocos2d-x开发所需要的所有的环境变量。

此时在自己打算建立工程的目录中执行cocos new <projName> -p android.<projName> -l cpp -d ./ 即可生成一个名为<projName>的工程。进入工程目录,可以看到各个平台的子目录,和cocos的源码目录,以及需要自己编写代码用到的classes目录。


4. 更新SDK,安装32位支持包

从官网下载的SDK包只包含了基本的支持,无法进行android的实际编译,因此必须在线更新。在命令窗口中输入android, 按回车,启动SDK Manager。如果提示找不到命令,则说明上一不的环境变量设置不对,此时需要检查ANDROID_SDK_ROOT这一组环境变量,看是否是目录写错了。启动SDK Manager之后,联网正常的话就会出现可更新列表,选择,plateform-tools,几个关键版本的build-tools,在下面的几个关键版本也打上对号,要是不知道自己要开发的目标版本是什么就全都选中。之后运行 android list targets会出现相应的targets信息。

64位系统如果不安装32位支持包会提示 adb: No such file or directory 命令无法找到,即便这个可执行文件就在你眼前。 sudo apt-get install ia32-libs, 会提示这个包不能继续使用,同时给出了相应的替换操作,把列出来的可替换的包全都安装上就可以了。

有时可能还会继续遇到问题 libstdc++.so.6: cannot open shared object file: No such file or directory,此时时因为系统安装的std库时64位的,这时只要 sudo apt-get install lib32stdc++6 这样问题全部解决。


5.修改targets信息

打开proj.android 下的project.properties,将targets改成自己调试手机对应的版本,版本对应方法可以在SDK Manager中看到。

6.导入eclipse,进行在线调试

在eclipse中选择android项目导入,之后看看是否有其他错误。我在解决了前面所有问题之后,就已经不再有其他错误了,因此从命令行进入到android.proj中执行build_native.py -p  15 , 15时targets的代号这里代表4.0.0版本。编译完成后会有成功的提示信息,如果没有则需要往前翻看log看看具体错误然后有针对进行修正。可能会出现build-tools没有找到,targets 版本不对等等。只要SDK Manager中更新好就不会出现这类问题。

编译成功后刷新eclipse,选择run configurations, 之后新建一个,在target中选择 always prompt to pick device, 把手机usb debug打开之后接到电脑,点击run之后就可以看到自己的设备信息,之后再继续运行就可以看到手机上出现了安装程序提示,安装后运行即可。


最后手机上出现Hello World如下:



0 0
原创粉丝点击