从使用角度看到的流程:
写程序的步骤:
- 用编辑器编写源代码,如.c文件。
- 用编译器编译代码生成目标文件,如.o
- 用链接器连接目标代码生成可执行文件,如.exe。
make和makefile
源文件太多一个一个的编译特别麻烦。make工具就是一个批处理工具,是一个自动化编译工具,可以使用一条指令完成编译,但是需要写一个规则文件,make依据规则来进行批处理,这个文件就是makefile。
CMake
对于一个大工程编写makefile就很复杂,cmake工具是一个可以读入所有源文件自动生成makefile文件的工具,它可以输出各种各样的makefile或者project文件。同样cmake工具也需要有一个规则文件cmakelist文件,这个没有捷径可走需要脚踏实地的编写。
CMake是干什么用的?
它首先允许开发者编写一种平台无关的 CMakeList.txt 文件来定制整个编译流程,
然后再根据目标用户的平台进一步生成所需的本地化 Makefile 和工程文件。
从而做到“Write once, run everywhere”。
一些使用 CMake 作为项目架构系统的知名开源项目有 VTK、ITK、KDE、OpenCV、OSG 等
Linux 下 CMake 的编译流程
在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:
- 编写 CMake 配置文件 CMakeLists.txt 。
- 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile 1 1ccmake 和 cmake 的区别在于前者提供了一个交互式的界面。。其中, PATH 是 CMakeLists.txt 所在的目录。
- 使用 make 命令进行编译。