参考:https://www.bilibili.com/video/BV1vR4y1u77h?p=10&spm_id_from=pageDriver
cmake is the cross-platform buildsystem generator。大概意思是cmake是 跨平台的用来构建软件的一个东西。比如:Linux下,写了一个cpp文件,我们用g++来编译连接成一个a.out。如果一个工程有很多cpp时,直接在命令行中敲命令特别繁琐,于是我们通过make命令,执行Makefile来生成文件。但是Makefile也需要写。于是我们可以通过cmake来生成Makefile,然后再make。不过使用cmake也需要一个CMakeLists.txt;其遵循cmake的语法;
cmake不仅可以生成makefile,还可以安装文件,目录,可执行文件等。功能很强大;
CMakeLists.txt中的语法是一条条cmake支持的命令,命令不区分大小写,变量区分大小写;
一些命令如下:
message(STATUS “abc”) #执行cmake后在命令行显示“-- abc”
message(SEND_ERROR “abc”)#报错,错误是“abc",继续执行下面的命令,不过make的时候会失败
message(FATAL_ERROR “abc”)#报错,错误是"abc",不继续下面的命令,执行make的时候会失败;
add_executable(hello test.cpp test1.cpp)#指定可执行文件名是hello,其源文件是test.cpp,test1.cpp;
add_library(hello STATIC test1.cpp)
add_library(hello SHARED test1.cpp)#这两个分别是生成静态库,动态库
cmake_minimum_required(VERSION 3.16)#指定cmake版本
project(HELLO)#指定工程名字
add_subdirectory(src bin)#加子目录,类似于C/C++中的#include,子目录是src,会执行src目录中的CMakeLists.txt,并把最终构建的可执行文件及生成的一些中间文件放在bin目录中,bin目录无需存在,会自行创建。
set(ABC “abc”);//设置变量ABC的值是 ”abc"
message(STATUS “ABC=${ABC}”);//执行完cmake后在命令行显示:
- - ABC=abc
cmake中的变量有局部变量,缓存变量(全局变量),环境变量;都可以通过set来设置;
可参考:cmake set的使用
有很多命令,具体使用时不会的时候去网上查找…
cmake的使用
于 2022-04-12 15:49:57 首次发布