C++ Cmake学习(二):语法介绍

目录

PROJECT关键字

SET关键字

MESSAGE关键字

ADD_EXECUTABLE关键字

语法的基本原则

语法注意事项

内部构建和外部构建

外部构建方式举例


学习通道:从零开始详细介绍CMake

Cmake下载地址:下载地址

Cmake官网:官网


PROJECT关键字

可以用来指定工程的名字和支持的语言,默认支持所有语言

PROJECT(HELLO)指定了工程的名字,并且支持所有语言——建议

PROJECT(HELLO CXX)指定了工程的名字,并且支持的语言是C++

PROJECT(HELLO C CXX)指定了工程的名字,并且支持的语言是C和C++

该指定定义了两个CMAKE的变量HELLO_BINARY_DIR、HELLO_SOURCE_DIR

 MESSAGE关键字就可以定义直接使用者的两个变量,当前都指向当前的工作目录。

问题:如果修改了工程名,这两个变量名也会随之改变

解决:再定义两个预定义变量:PROJECT_BINARY_DIR、PROJECT_SOURCE_DIR,这两个变量和HELLO_BINARY_DIR、HELLO_SOURCE_DIR是一致的。所以改变

SET关键字

用来显示指定变量

SET(SRC_LIST main.cpp)SRC_LIST变量就包含了main.cpp

也可以包含多个cpp文件, SET(SRC_LIST main.cpp main1.cpp main2.cpp)

MESSAGE关键字

向终端输出用户自定义的信息

主要包含三种信息:

SEND_ERROR,产生错误,生成过程被跳过。

SATUS,输出前缀为一的信息。

FATAL_ERROR,立即终止所有cmake过程。

ADD_EXECUTABLE关键字

生成可执行文件

ADD_EXECUTABLE(hello ${SRc_LIST})生成的可执行文件名是hello,源文件读取变量 SRC_LIST中的内容,也可以直接写成 ADD_EXECUTABLE(hello main.cpp)

注意:工程名的HELLO和生成的可执行文件hello是没有任何关系的

语法的基本原则

变量使用${}方式取值,但是在IF控制语句中是直接使用变量名

指令(参数1 参数2 。。。)参数使用括弧括起来,参数之间使用空格或分号分开。以ADD_EXECUTABLE指令为例,如果存在另一个func.cpp源文件,就要写成:ADD_EXECUTABLE(hello main.cpp func.cpp)或者ADD_EXECUTABLE(hello main.cpp;func.cpp)

指令是大小写无关的,参数和变量是大小写相关的,但是推荐全部使用大写指令

语法注意事项

SET(SRC_LIST mian.cpp)可以写成SET(SRC_LIST "mian.cpp")。如果源文件名中含有空格,就必须要加双引号

ADD_EXECUTABLE(hello main)后缀可以不加,他会自动去找.c和.cpp,但是最好不要这样去写,因为可能会有两个文件main.cpp和main

内部构建和外部构建

上述是内部构建,产生的临时文件特别多,不方便清理

外部构建,就会把生成的临时文件放在build目录下,不会对源文件有任何影响,所以强烈建议使用外部构建的方法!

外部构建方式举例

1、在当前目录下创建一个build目录

2、进入build,运行指令cmake .. (表示上一级目录),或者是CMakeLists.txt锁在的绝对路径,这样生成的文件都在build目录下了

3、在build目录下,运行make来构建工程

  

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静·无羡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值