《Cmake实践》

第一章 初识cmake

  1. cmake的主要特点
    a. 开放源代码
    b. 跨平台,并可生成native编译配置文件。Linux/Unix平台生成makefile,windows平台生成MSVC工程文件
    c. 能够管理大型项目
    d. 简化编译构建过程和编译过程。cmake工具链:cmake+make
    e. 高效率
    f. 可扩展,可为cmake编写特定功能模块,扩充cmake功能

  2. cmake编写过程实际上是编程过程,每个目录要写一个CMakeList.txt,使用cmake语言和语法

  3. 如果工程只有几个文件,可直接编写Makefile

第二章 安装cmake

  1. ubuntu安装cmake

    sudo apt install cmake
    
  2. Win10

    官网下载 https://cmake.org/

    在这里插入图片描述

    然后按步骤安装,注意选择添加环境变量
    在这里插入图片描述

    安装完成后,在cmd中输入cmake输出以下信息,代表安装成功

    在这里插入图片描述

第三章 初试cmake—hello world

  1. 创建目录存放工程

    mkdir test1
    
  2. 在目录test1中建立main.c和CMakeLists.txt(注意大小写)
    a. main.c中主要为printf(“Hello World!”)
    b. CMakeLists.txt文件内容:

    PROJECT (HELLO)
    SET (SRC_LIST main.c)
    MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})
    MESSAGE(STATUS "This is SOURCE dir" ${HELLO_SOURCE_DIR})
    ADD_EXECUTABLE(hello SRC_LIST)
    
  3. 开始构建
    a. 在目录test1中执行以下命令cmake . //命令中的 . 代表本目录
    i. 构建成功命令行会输出Configuring done Generating done
    ii. 构建成功后系统会自动生成CMakeFiles、CMakeCache.txt、cmake_install.cmake等文件,并生成Makefile
    b. 工程的实际构建:命令行输入make
    c. 需要看到make构建的详细过程:make VERNOSE=1
    d. 最终得到目标文件hello,可通过以下命令运行./hello

  4. cmake文件解析
    a. 若工程存在多个目录,需要确保每个目录都有一个CMakeLists.txt
    b. PROJECT指令:定义工程名称、指定工程支持的语言(默认表示支持所有语言)
    i. 语法:

    PROJECT(projectname [CXX] [C] [Java])

    ii. 该指令隐式的定义了如下变量:

    1. <projectname>_BINIARY_DIR
    2. <projectname>_SOURCE_DIR

    两个变量指的是工程所在路径

    c. SET指令:定义变量
    i. 语法:SET(VAR [VALUE] [CACHE TYPE DOCSTRING [FORCE]])
    ii. 例:SET(SRC_LIST main.c t1.c t2.c)
    d. MESSAGE指令:向终端输出用户定义的信息
    i. MESSAGE([SEND_ERROR | STATUS | FATAL_ERROR] “message to display”)

    包含三种类型:

    1. SEND_ERROR 产生错误,生成过程被跳过
    2. STAUTS:输出前缀为-的信息
    3. FATAL_ERROR:立即终止所有cmake过程
      e. ADD_EXECUTABLE(hello ${SRC_LIST}):

    定义该工程会生成一个名为hello的可执行文件

  5. 基本语法规则
    a. 变量应用方式:${ } (IF控制语句中不需要,可直接使用变量名)
    b. 参数使用括号扩起,参数之间使用空格或者分号分开
    c. 指令大小写无关,参数和变量大小写相关,但推荐全部使用大写指令
    d. 工程名与可执行文件名无关

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值