CMakeLists 使用总结
由于c++更为自由,运行速度较快,所以我们常常会使用c++写一些算法,这其中少不了对CMakeLists的折腾,这里会记录一下我使用Cmake的流程以及问题,最后给出一个使用openCV的小demo
1 简介
我的理解,CMake就是将makefile进一步封装,用起来更加友好,我们只要编写CMakeLists.txt文件,就可以自动生成makefile,然后再使用make进行源码编译。
下面我们可以假设一个c++工程的目录结构作为例子,便于我们理解:
.
|-build
|-CMakeLists.txt
|-include
|-a.h
|-b.h
|-src
|-a.cpp
|-b.cpp
|-main.cpp
2 CMakeLists.txt编写
想编译你的工程文件,就需要对CMakeLists.txt文件进行编写,简单应用的话,具体编写流程都是大概的套路,下面写一写我的理解。
首先要注意一点,文件路径的起始点是从CMakeLists.txt平行目录开始的
-
指定cmake的最小版本
cmake_minimum_required(VERSION 3.17)
这里没啥好说的,很多IDE都会提前帮你写好,比如Clion,指定一下cmake的最小版本。
-
设定项目名称
set(PROJECT_NAME 项目名称) project(${PROJECT_NAME})
这里project没什么好说,写一下你的工程名字就可以,也就是最后编译链接后生成控制台程序的名称(当然也可能是库之类的)
主要讲一下
set
的用法,set一般有两个作用:- 定义变量并赋值
- 给内置宏变量赋值
set(a "${CAMKE_SOURCE_DIR}/src/main.cpp")
这里是将后面那个路径赋