CMake学习

Android NDK开发现在主推使用CMake编译,对于老项目建议使用ndk_build来处理。借此机会收集CMake的内容。

CMake 是什么

关于cmake与make的区别参考make makefile cmake qmake都是什么,有什么区别?
其中部分引用如下,应该可以大概了解其中的区别。

  1. Makefile+make可理解为类unix环境下的项目管理工具,但它太基础了,抽象程度不高,而且在windows下不太友好(针对visual studio用户),于是就有了跨平台项目管理工具cmake
  2. cmake是跨平台项目管理工具,它用更抽象的语法来组织项目。虽然,仍然是目标,依赖之类的东西,但更为抽象和友好,比如你可用math表示数学库,而不需要再具体指定到底是math.dll还是libmath.so,在windows下它会支持生成visual studio的工程,在linux下它会生成Makefile,甚至它还能生成eclipse工程文件。也就是说,从同一个抽象规则出发,它为各个编译器定制工程文件。

CMake学习_第1张图片
可以从上面的图中有一个形象化的认识,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的使用

你可能感兴趣的:(Android,android,cmake,android,ndk,makefile)