NMT Data Mining & Big Data

CMake学习笔记1

2025-03-31
NMt

记录学习CMake管理C++工程的过程。

@@@@

cmake简介

cmake是一个管理软件build过程的工具,它并不会直接build出软件可执行文件本身,而是制作出可以build出软件本身的全部工程文件,比如makefiles、msvc的工程文件,然后我们可以通过执行这些工程文件,完成最终的编译。
cmake是一种解释执行的脚本语言,但其语法设计古怪,语言表达力弱,基本上可以认为也就比shell脚本强一丢丢,无法与常规高级语言相提并论,但工程管理能力强大。

  • 优点:
    • 操作透明而细腻
    • 它专注于现代C++编程、专注于支持C++现代编译器和工具链
    • 支持生成目录几乎所有主流IDE的项目
  • 缺点:
    • 它还在成长
    • CMake它是一门语言,需要学习成本

CMake基础命令

使用CMake管理C++工程,需要在项目目录中创建CMakeLists.txt脚本文件进行配置。

  1. 生成平台相关的工程文件,命令形式如下:
     cmake <source_dir> -B <build_dir> -G <generator>   ...... 
    

    说明:

    • source_dir 项目源代码目录的路径
    • -B build_dir 指定构建系统的输出目录
    • -G 指定了生成的构建系统文件的生成器
      • “Unix Makefiles” 生成 Makefile
      • “Visual Studio 16 2019” 生成 Visual Studio 项目
    • -D =: 设置 CMake 变量的值。例如 -DCMAKE_BUILD_TYPE=Release 设置构建类型为 Release。
  2. 编译制作出的工程文件,得到最终结果文件,命令形式如下:
     cmake --build ......  
    

    注:或平台相关的编译命令,如msbuild、make等

    综合上面两步,命令示例:

     cmake  -B   buildProject   -S XXX        编译源码,生成xx.sln工程  
     cmake --build  buildProject      构建工程,生成xx.exe  
    

实例1引入

工程目录

KCircle1
	|-----CMakeLists.txt
	|-----KCircle.cpp
	|-----KCircle.h
	|-----main.cpp

CMakeLists.txt 编写

cmake_minimum_required(VERSION 3.10)

Project(KCircle1)

add_executable(${PROJECT_NAME} KCircle.cpp main.cpp)

生成工程文件以及编译文件

在项目的文件夹下输入构建命令:

mkdir Debug
cd Debug
cmake -B . -S ../hello
cmake --build  .

返回信息0个警告、0个错误则表明编译成功。

转载请注明:南梦婷的博客 » 点击阅读原文


Similar Posts

下一篇 CMake学习笔记2

Comments