安裝cmake
這里使用AndroidStudio,SDKTools里面的cmake

}{P~DF46)Q3BIZD12K3R2@W.png
安裝完成后可以在sdk目錄查看是否安裝完成:

O2$1S2P8E`G78@Z}71G6B$J.png
執(zhí)行cmake --version查看安裝版本:

7UZIZE}07NKLY8~0P``7FTD.png
打開~/.bashrc文件,把cmake配置到環(huán)境變量:

image.png
在任意目錄下執(zhí)行cmake --version查看安裝版本:

image.png
打包靜態(tài)庫
新建文件 CMakeLists.txt(命名必須是 CMakeLists.txt,注意大小寫和不要漏字母)

COK[XS_%_WMEYJM$$T]{M)E.png
cmake_minimum_required(VERSION 3.4.1)
add_library(test test.c)
新建一個 build 文件夾:

OA39S6MR8BEHWE8_E9G}3XO.png
為什么要新建一個 build 文件夾?
一般我們采用 cmake 的 out-of-source 方式來構建(即生成的中間產(chǎn)物和源代碼分離),這樣做可以讓生成的文件和源文件不會弄混,且目錄結構看起來也會清晰明了。所以推薦使用這種方式,至于這個文件夾的命名并無限制,我們習慣命名為 build。
首先進入到 build 目錄,然后就是 cmake .. 命令,.. 表示上一級目錄,cmake 會在上一級目錄下找到 CMakeLists.txt 文件并編譯,并生成如下圖所示的一些中間文件:

image.png
這里報錯了,原因是test是某些cmake特性保留的關鍵字,修改下 CMakeLists.txt
cmake_minimum_required(VERSION 3.4.1)
add_library(t test.c)

`RU@AGVULMMF9MMJ8_ZQ`J8.png
可以看到產(chǎn)生了一些中間文件,以及一個Makefile文件
然后執(zhí)行make命令,其實是執(zhí)行Makefile文件里面的命令:

@210@@72PP3RA08}F3AEIJD.png
然后進入到上一級目錄鏈接執(zhí)行:

image.png
打包動態(tài)庫
打包動態(tài)庫和靜態(tài)庫的區(qū)別就是添加一個SHARED參數(shù):
cmake_minimum_required(VERSION 3.4.1)
add_library(t SHARED test.c)

image.png
然后進入到上一級目錄鏈接執(zhí)行:

DD1B1@7G5(1PNHHMVJDG4$Y.png
執(zhí)行如下:

image.png
這里也可以不用手動鏈接庫,修改下目錄,將test.c,test.h, CMakeLists.txt放在test文件夾下:

image.png
新建一個 CMakeLists.txt生成可執(zhí)行文件:

image.png
cmake_minimum_required(VERSION 3.4.1)
add_subdirectory(test)
include_directories(test) //把頭文件目錄包含進來
add_executable(main hello.c)
target_link_libraries(main t)
進入到build目錄,依次執(zhí)行cmake,make,./main

image.png