一.引言
学了c++后一直想找一个项目练练手,于是前一段时间学了qt做了一个小程序。那么问题来了,如何像python一样想用哪个包就导入哪个包呢,并且跨系统跨平台呢?答案就是cmake.(虽然还是没有python方便)
1.1 cmake简介(废话大概看一下)
CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile 或者 project 文件,CMake 的配置文件取名为 CMakeLists.txt
。也就是在 CMakeLists.txt
这个文件中写 cmake 代码。 简单理解,cmake 就是将多个 cpp、hpp 文件组合构建为一个大工程的语言。
1.2 cmake优势
简单来说就是3点
- 跨平台。 支持Linux/mac/windows。 visual studio对cmake支持很好。
- 能够管理大型项目。 简化编译构建过程和编译过程。cmake 的工具链非常简单:cmake + make。
- 可扩展,可以为 cmake 编写特定功能的模块,扩展 cmake 功能。
1.3 cmake安装
直接官网安装就可以,一直点下一步,记得勾选创建快捷方式。
打开cmd窗口输入cmake -- version
,控制台输出版本号即为安装完成。
二.使用
可以分为两种方式:命令行 / gui界面
2.1 命令行
还没用到,主要使用gui界面,等我用到再更新。。。
2.2 gui界面
以创建vs项目为例,这个demo项目导入了opencv的包,包下载很简单,点这里,下载resource后解压。记得添加opencv的path系统环境变量:D:\OpenCV\opencv-4.9.0\build\x64\vc16\bin(改成自己的路径)。
开始,首先看一下文件结构:
这个CmakeListsx.txt文件是固定存在于项目根目录下的。
文件内容:
# 指定 CMake 的最小版本要求
cmake_minimum_required(VERSION 3.28)
# 设置项目名称和版本
project (demo)
# 添加可执行文件
# add_executable (demo hello.cpp)
# 下面是引入的本地库,不是一个项目必要文件
# 添加搜索路径
list(APPEND CMAKE_PREFIX_PATH D:\\