我们在上一篇博客中年使用的cocos工具对于C和C++源代码进行编译。事实上cocos工具读取<游戏工程目录>\proj.android\jni\目录中的Android.mk文件,进行交叉编译和打包的。
Android.mk是一个编译文件,它是GNU Makefile的一小部分,是用来向Android NDK描述C和C++源代码文件的,如何进行编译,以及打包等操作。默认的Android.mk文件内容如下:
- LOCAL_PATH := $(call my-dir) ①
- include $(CLEAR_VARS) ②
- LOCAL_MODULE := cocos2dcpp_shared ③
- LOCAL_MODULE_FILENAME := libcocos2dcpp ④
- LOCAL_SRC_FILES := hellocpp/main.cpp \
- ../../Classes/AppDelegate.cpp \
- ../../Classes/HelloWorldScene.cpp ⑤
- LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes ⑥
- LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static ⑦
- LOCAL_WHOLE_STATIC_LIBRARIES += cocosdenshion_static
- LOCAL_WHOLE_STATIC_LIBRARIES += box2d_static
- include $(BUILD_SHARED_LIBRARY) ⑧
- $(call import-module,2d) ⑨
- $(call import-module,audio/android)
- $(call import-module,Box2D)
下面我们解释一下这些项目的含义,第①行LOCAL_PATH是定义当前目录变量,该变量必须定义,其中my-dir宏,call my-dir是返回当前目录。第②行代码include $( CLEAR_VARS)是清除LOCAL开通的变量,但不包含LOCAL_PATH,这是因为所有的变量都是全局的。
第③行代码定义LOCAL_MODULE变量,该变量是必须定义的,用来识别Android.mk文件中描述的每个模块。名称必须是唯一的,而且不包含任何空格。第④行代码定义LOCAL_MODULE_FILENAME变量,它是可以选的,通过该变量可以重新定义生成文件的名字。本例中生成的文件名libcocos2dcpp.so文件。
第⑤行代码定义LOCAL_SRC_FILES变量,它描述了模块中将要编译的源文件列表。第⑥行代码定义LOCAL_C_INCLUDES变量,指定头文件搜索路径逻辑列表。第⑦行代码定义LOCAL_WHOLE_STATIC_LIBRARIES变量,它用来指定要连接的库模块。
第⑧行代码是include $(BUILD_SHARED_LIBRARY)表示编译生成动态链接库(或共享库),文件命名为lib<库模块名>.so。另外,我们可以使用BUILD_STATIC_LIBRARY告知编译系统生成静态链接库,文件命令为lib<库模块名>.a。
第⑨行代码$(call import-module,2d)是通过目录名包含另一个模块的Android.mk,其中2d是模块目录名。
提示库是一些没有main函数的程序代码的集合。库分为:静态链接库和动态链接库,它们的区别是:静态链接库可以编译到你的执行代码中,应用程序可以在没有静态链接库的环境下运行;动态链接库不能编译到你的执行代码中,应用程序必须在有链接库文件的环境下运行。在微软的Windows和Windows Phone平台动态链接库文件是.dll文件,静态链接库是.lib文件;在Linux和Android平台动态链接库文件是.so文件,静态链接库是.a文件;Mac OS X和iOS等平台动态链接库文件是.dylib文件,静态链接库是.a文件。
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:
京东:http://item.jd.com/11584534.html
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734
《Cocos2d-x实战 C++卷》源码及样章下载地址:
源码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1
相关推荐
在Android平台上,构建Cocos2d-x项目时,开发者需要配置`Android.mk`文件,这是一个Makefile,用于指示Android NDK如何编译和链接C++源代码。然而,手动编辑`Android.mk`文件可能既耗时又容易出错。为了简化这一过程...
Cocos2d-x 是一个开源的、跨平台的2D游戏开发框架,广泛应用于iOS、Android、Windows等多平台的游戏开发。3.x版本是其发展中的一个重要阶段,引入了多项优化和新特性,旨在提高开发效率和性能。 本书首先会介绍...
cocos2d-x是一款开源的游戏开发框架,基于C++,广泛应用于跨平台的移动游戏开发,支持iOS、Android以及Windows等操作系统。 在cocos2d-x 3.x版本中,主要的更新和改进包括: 1. **性能优化**:cocos2d-x 3.x对渲染...
1. 请将文件放到cocos2d-1.0.1-x-0.13.0-beta目录下面 2. 打开build_android_ndk_tests.bat 文件 修改set NDK_ROOT=D:\Work7\android-ndk-r7c到你的NDK实际路径即可 3. jni/Application.mk 文件中加入 APP_MODULE : ...
Cocos2d-x 3.x游戏开发之旅教程及完整源码下载,使用最新cocos2d-x-3.14版本,在xcode7.3上已编译通过。 解决相关问题 1、解决源程序在高版本上无法编译问题 2、解决源程序中文注释部分,xcode上显示乱码问题 使用...
在Android Studio项目中,你需要将这些jar包导入到项目的`libs`目录下,并在`build.gradle`文件中配置依赖,这样编译器才能识别和链接这些库。例如: ```groovy dependencies { implementation fileTree(dir: '...
通常,这些库包括预编译的二进制文件和其他必要的资源,它们能够简化集成过程,避免开发者自行编译这些依赖,从而节省时间和资源。 在实际应用中,使用 Metal 的好处主要体现在以下几个方面: 1. **性能优化**:...
cocos2d-x-3.4.z01 压缩包2/7
│ cocos2dx-3.10-api.lua │ cocos2dx-3.11-api.lua │ cocos2dx-3.12-api.lua │ cocos2dx-3.6-api.lua │ cocos2dx-3.7-api.lua │ cocos2dx-3.7.1-api.lua │ cocos2dx-3.8-api.lua │ cocos2dx-3.8.1-api.lua ...
cocos2d-x是一款跨平台的2D游戏开发引擎,广泛应用于iOS、Android、Windows等多平台的游戏开发,尤其适合制作2D图形和动画丰富的游戏。其核心特性包括渲染引擎、物理引擎、粒子系统、音频处理、脚本支持等,为开发者...
cocos2d-js-min.9c507.js
《cocos2d-x 3.8:经典游戏引擎源码解析》 cocos2d-x 是一个跨平台的游戏开发框架,它基于C++,同时提供了Lua和JavaScript的绑定,让开发者可以方便地在多种操作系统上创建2D游戏、演示程序和其他图形交互应用。这...
cocos2d-js-min.b8b86.js
Cocos2d-x是一个开源的游戏开发框架,广泛应用于跨平台游戏开发,支持iOS、Android、Windows等多个操作系统。本书通过深入浅出的讲解,让开发者了解并熟练运用Cocos2d-x 3.X的各项功能。 首先,书中会介绍Cocos2d-x...
首先,你需要解压这个zip文件,然后将解压得到的libluajit.a替换到你的cocos2d-x项目中的相应位置,通常是项目的libs/iphoneos目录下。 替换libluajit.a文件后,确保你的Xcode项目设置正确。在Xcode中,打开项目的...
Cocos2d-x是一个开源的游戏开发框架,广泛应用于跨平台的2D游戏制作,支持iOS、Android、Windows等多个操作系统。 本书主要涵盖了以下关键知识点: 1. **Cocos2d-x框架介绍**:Cocos2d-x是基于C++的,但同时也提供...
这个文件是Cocos2d-js的核心库,经过压缩和混淆处理,旨在减少加载时间和提高页面性能。在HTML5游戏中,性能是至关重要的,因为玩家往往对游戏的流畅度有较高要求。cocos2d-html.min.js将所有必要的Cocos2d-js功能...
Cocos2d-x是一个跨平台的2D游戏开发框架,基于C++编写,支持多种操作系统,包括iOS、Android、Windows等。版本3.x带来了许多改进,如性能提升、新的渲染引擎、更好的内存管理以及对C++11标准的支持。在实际项目中,...
Cocos2d-x 3.x游戏开发之旅_完整版PDF电子书 上次传过一个给弄错了 而且我也不知道怎么把上次上传的那个删掉 看清楚 这个才是 完整版
Cocos暑期实训-环境配置 本文档旨在指导读者快速配置Cocos2dx环境,实现Windows平台下的Cocos项目开发。通过阅读本文档,读者将能够查看和编辑项目素材和代码,编译并在模拟器上运行项目,并进行有效的调试。 一、...