项目引入了一些cocos2d-x 3.0的代码,大量使用c++11的新特性。这些在gcc4.6是不完全支持的,但是gcc4.7绝大部分已经支持。
设置toolchain的方法是在Application.mk中设置:
NDK_TOOLCHAIN_VERSION = 4.7
为了确认是否设置成功,在ndk-build调用时增加参数V=1。即 ndk-build v=1 ..其他参数..
这里在说一下关于新标准的经验。
依托于c++11的新标准,使用c++变得”爽“了很多。最本质的就是几个元素
1、auto关键字,这个可以使代码变得简洁很多,并且可以让程序员不那么关注类型(但是不是不关注类型)。
2、shared_ptr,虽然没有c++11的新标准项目也大量使用智能指针,但是归到标准库总是一件令人愉悦的事情。(你不需要引入boost或者是自己写一个智能指针库了)
3、function and bind,这两个东西的加入让回调函数变得优雅起来。 我使用脚本语言最方便的地方就是弱类型,比如lua,你可以随时随地保存一个function作为参数或者变量保存起来,然后合适的时机调用。合理使用function和bind你会发现c++有着不逊于高级语言的表达能力。
4、lambda,这个跟3一样,都是让代码变得整洁,让流程变得清晰。使用匿名函数,可以免去很多不必要的函数定义。不熟悉的人可能感觉语法诡异,但是熟悉后就会喜欢上它。参考java python lua objective-c....
5、thread,原本我更喜欢自己造轮子,但是造的多了就烦了。 使用thread就可以完美的解决各个平台的线程问题。而不需要使用pthread或者是自己的封装版本。老实说我现在还没有学会wp8平台下的线程库,但是借助于thread,我可以永远不去学习它。作为程序员,有的东西学的越多越好,有的东西没有太大必要学习,一味跟着微软后面跑的程序员不是好的程序员。
我现在想到的我喜欢并且常用的新特性就这些,另有一些不推荐使用的(如果不知道的话就不要知道):
1、统一初始化列表。 原因无他vs2012不支持,如果想要代码在wp8下编译,那就不要碰它
2、成员变量像java或c#一样,在声明的同时赋初值。 原因同上vs2012不支持。
3、部分特殊语义,不做列举,因为不喜欢。 有些语义是vs明确声明不支持的,这些高级货色除非证明是不可替代的,否则还是不要碰它。
4、变参模板,这个其实是很好的特性,跟1一样,可以2012不支持。暂时用替代方案吧。不过话说,除非是写signal或者是function这样的基础库,似乎用到变参模板的情况也不多。
分享到:
相关推荐
使用Android NDK编译Android平台的eXosip库,有静态库和动态库。
arm平台下使用ndk工具交叉编译python,用于android系统;android-arm平台ndk交叉编译python
1、支持arm 2、支持aarch64
eclipse android ndk环境配置及项目编译超详细攻略,包括cygwin的安装,配置
curl库源码添加了curl_config.h和mk文件,可以直接跳转到目录使用ndk-build编译出so库.
本文简要介绍了如何安装Android NDK的C/C++语言开发套件,并介绍了如何创建一个独立的ARM交叉编译工具链。通过该工具链接可以交叉编译Android上的C语言程序,也可以用来编译Android Linux内核。文中举例介绍了如何...
ubuntu下android ndk编译环境搭建,android应用程序开发,环境编译
在ndk下编译的x264源码,已做修改,可以直接放在ndk下的samples目录下编译,该源码已经编译过,在libs目录下有libx264.so库,可以直接放在android下用
android studio 使用NDK和swig编译c++示例。使用swig可以自动化编译c++函数。比较方便。http://blog.csdn.net/qq_16064871
./configure --prefix=/usr/local/android --host aarch64-linux-android --with-pic --disable-shared make -j4;make install 在wsl下面用ndk20编译的, aarch64-linux-android29-clang++ aarch64-linux-android-...
最新版的live555 ,android的移植,大家瞧一瞧,看一看
android ndk 使用方法android ndk 使用方法
live555 库 和 testRtspClient.cpp 编译生成静态库 和 可执行文件 testRtspClient 编译方法: 首先进入各个模块执行 Makefile,将静态库拷贝至上层目录 执行 ndk-build
Android NDK 安装以及 HelloWorld!测试
android NDK使用文档(英文)android NDK使用文档(英文)android NDK使用文档(英文)android NDK使用文档(英文)
利用ndk编译android的sh文件,利用该sh文件,能够正确编译出so文件
Android ndk编译demo,在soxr的源码上完善了Android NDK的编译脚本,快速编译出需要的soxr
博客名称 : 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 ) 博客地址 : https://hanshuliang.blog.csdn.net/article/details/102933704
下载 https://developer.android.google.cn/ndk/downloads/ https://developer.android.google.cn/ndk/downloads/older_releases 编译ffmpeg:最高版本16b,再高的版本...export NDK=/home/quantum6/android-ndk-16b
NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk,并集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件