生成Android本地库(Android平台可用的C/C++库),需要使用NDK进行交叉编译,生成工具主要有CMake和Makefile两种。
1 NDK简介
(1)概念:NDK(Native Development Kit)是Google Android发布的本地开发工具集,包括C/C++编译器、交叉编译工具、一些标准库,如:C标准库、标准数学库、压缩库、Log库等。
(2)用途:帮助开发者生成Android本地库(包括动态库和静态库),并能自动将so和java应用一起打包成apk。
2 生成Android本地库的方法
主要包括两种方法:
(1)NDK + makefile文件 + make工具。Android NDK开发(三):NDK + makefile文件 + make工具生成本地库_u04160526-CSDN博客
makefile是描述整个工程的编译、连接等规则的工程构建文件。保存了编译器和连接器的参数选项,指定编译哪些文件、如何编译文件、链接哪些库等等。makefile实现了“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动构建生成可执行程序或库,提高了软件开发的效率。使用NDK编译时我们需要编写的只有两个makefile文件,分别为Android.mk、Application.mk(makefile文件的后缀名为.mk),其他mk文件NDK已经为我们写好了。
make工具是专门用于解释makefile文件内容的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。make工具读取makefile文件后,会激活编译器、汇编器、链接器以便产生最后的可执行文件或库。NDK中已经集成了make工具,不需要额外安装。
(2)NDK + CMakeLists文件 + cmake工具 + make工具。
CMake是一个比make更高级的工程构建工具,它可以根据不同平台、不同的编译器,生成相应的makefile文件,而不直接构建工程。
CMakeLists.txt是描述工程构建的文本文件,CMake工具可通过解释CMakeLists.txt文件,跨平台生成makefile文件,供make工具构建工程生成可执行程序或库使用。
CMake和Make的关系可如下:
好了分享就到这里,如有问题请告知,希望大家点个赞支持一下!!!