如何通过CMake实现一个复杂项目的构建过程?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1187个文字,预计阅读时间需要5分钟。
不同的Make工具遵循不同的规范和标准,执行的Makefile格式也千差万别。若软件希望跨平台运行,必须确保能在不同平台上编译,这就需要为每一平台编写一次Makefile。
各种不同的Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。如果软件想跨平台,必须要保证能够在不同平台编译,这就得为每一个Make工具写一次 Makefile ,这将是一件让人抓狂的工作。使用CMake工具就可以很好的解决这个问题。
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目,生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:
1. 编写 CMake 配置文件 CMakeLists.txt 。
2. 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile。其中, PATH 是 CMakeLists.txt 所在的目录。
3. 使用 make 命令进行编译。
本文共计1187个文字,预计阅读时间需要5分钟。
不同的Make工具遵循不同的规范和标准,执行的Makefile格式也千差万别。若软件希望跨平台运行,必须确保能在不同平台上编译,这就需要为每一平台编写一次Makefile。
各种不同的Make 工具遵循着不同的规范和标准,所执行的 Makefile 格式也千差万别。如果软件想跨平台,必须要保证能够在不同平台编译,这就得为每一个Make工具写一次 Makefile ,这将是一件让人抓狂的工作。使用CMake工具就可以很好的解决这个问题。
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,生成相应的Makefile。通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。CMake自动生成的Makefile不仅可以通过make命令构建项目,生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。
在 linux 平台下使用 CMake 生成 Makefile 并编译的流程如下:
1. 编写 CMake 配置文件 CMakeLists.txt 。
2. 执行命令 cmake PATH 或者 ccmake PATH 生成 Makefile。其中, PATH 是 CMakeLists.txt 所在的目录。
3. 使用 make 命令进行编译。

