自己对cmake的理解。
cmake充当了跨平台方便自动生成不同格式的makefile文件的一个工具,cmake不管文件的内容是什么,以什么后缀结尾,他建立的仅仅是各个文件之间的关系,指定谁是依赖于谁的。这个工具用CMakeList.txt来实现用户的想法。这个CMakeList.txt文件中,有以下这些指令。
- 1 cmake_minimum_required(VERSION 3.2) 来指定cmake的最低版本
- 2 project(demo) 设置最后生成的项目的名字
- 3 SET(CMAKE_C_COMPILER ${CROSS_COMPILE}gcc) 来设置变量
- 4 message("---------------") 来打印输出
- 5 include_directories()来指定头文件目录
- 6 add_subdirectory() 来指定进入到子目录去执行动作“库、可执行文件都可以”,子目录需要也有CMakeList.txt文件。
- 7 aux_source_directory() 来指定源文件所在目录
- 8 link_directories() 来指定依赖的库文件所在目录
- 9 add_executable(demo ${DIR_SRCS}) 来指定生成可执行文件
- 10 target_link_libraries() 来指定需要连接的库名字
- 11 add_library(cJson ${LIB_SRC}) 来指定生成的是静态库(默认是静调库,除非给出 share参数)。
现在感觉,也就这么回事吧,没有那么神秘以及恐怖了。剩下的就是关注需要使用的指令的参数意义,以及使用的熟练度了。