Android
NDK开发现在主推使用CMake编译,对于老项目建议使用ndk_build来处理。借此机会收集CMake的内容。
CMake 是什么
关于cmake与make的区别参考make makefile
cmake qmake都是什么,有什么区别?
其中部分引用如下,应该可以大概了解其中的区别。
- Makefile+make可理解为类unix环境下的项目管理工具,但它太基础了,抽象程度不高,而且在windows下不太友好(针对visual
studio用户),于是就有了跨平台项目管理工具cmake- cmake是跨平台项目管理工具,它用更抽象的语法来组织项目。虽然,仍然是目标,依赖之类的东西,但更为抽象和友好,比如你可用math表示数学库,而不需要再具体指定到底是math.dll还是libmath.so,在windows下它会支持生成visual
studio的工程,在linux下它会生成Makefile,甚至它还能生成eclipse工程文件。也就是说,从同一个抽象规则出发,它为各个编译器定制工程文件。
可以从上面的图中有一个形象化的认识,cmake是make的一个抽象,方便跨平台,也简化了make的使用难度。
CMake 学习
网上有推荐学习Mastering
Cmake这本书,但在Amazon
看最新版本评价对新手不太友好。又找了许久觉得CSDN上一些BLOG反而是更加容易上手,一来是大家都是从工程实践中学习,例子丰富,更贴近开发者的需求和学习方式。相比于CMake官方的Documentation,我还是建议从以下收集的一些关于CMake的学习站点开始入手,比如CMake学习系列
的6个系列。
- CMake学习系列
- CMake 实践(Chinese
pdf version from pku, click to download directly)
- CMake快速入门教程:实战
- CMake的使用