CMake教程系列-02-使用cmake代码生成二进制

本文详细介绍了如何在Windows 10环境下使用CMakeGUI和命令行来配置和生成C++项目。首先,讲解了CMake的安装过程,接着通过一个简单的示例展示了在CMakeGUI中设置源代码目录、生成目录以及选择Visual Studio版本的过程。然后,演示了如何在命令行中使用cmake命令行参数如-S、-B、-G、-A等进行项目配置和构建。文章还提及了关键的CMake命令行参数,如-D用于传递变量,--install-prefix指定安装路径等,帮助读者更好地理解和运用CMake。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Cmake的安装

2.Win10下使用CMake GUI

Win10安装文件:
在这里插入图片描述
创建的目录以及代码如下:

  • CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(sample CXX)
add_library(sample sample.cpp)
add_executable(sample_exe sample_exe.cpp)
  • sample.cpp
#include <iostream>

int print_hello_world()
{
    std::cout << "hello world!" << std::endl;

    return 0;
}
  • 目录结构如下:注意多创建一个build目录存放中间文件和最终二进制文件
    在这里插入图片描述

点击“Configure

  • 我的的vs是2019,在Configure中选择了
    在这里插入图片描述
    点击“Configure”右边的“Generate”。
    在这里插入图片描述

点击“Generate”右边的“Open Projrct”。

  • 可以看到针对于Visual Studio的配置已经完全生成,此时只需要构建 ALL_BUILD 即可生成库 sample 和可执行文件 sample_exe
    在这里插入图片描述
    在这里插入图片描述

2.win使用命令行生成项目

使用上面的代码文件,打开命令行,并输入以下命令:

E:\CmakeTest>cmake.exe -S E:\\CmakeTest -B E:\\CmakeTest\build -G "Visual Studio 16 2019" -A x64
-- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.19044.
-- The CXX compiler identification is MSVC 19.29.30141.0
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/BuildTools/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: E:/CmakeTest/build

执行以下命令生成库文件以及二进制程序:

E:\CmakeTest>cmake --build  E:\\CmakeTest\build
用于 .NET Framework 的 Microsoft (R) 生成引擎版本 16.11.2+f32259642
版权所有(C) Microsoft Corporation。保留所有权利。

  Checking Build System
  sample_exe.cpp
  sample.vcxproj -> E:\CmakeTest\build\Debug\sample.lib
  sample_exe.cpp
  sample_exe.vcxproj -> E:\CmakeTest\build\Debug\sample_exe.exe
  Building Custom Rule E:/CmakeTest/CMakeLists.txt

3.几个重要的命令行参数

-S

  • 顶级CMakeLists.txt(包含project声明)所在路径。

-B

  • 存放临时编译的二进制文件(.obj、.ilk等)和编译器对应的配置文件路径。

-G

  • 编译器名称

-A

  • 架构名称

-D

  • 使用该变量以向cmake传入各种参数。包括选项及覆盖cmake提供的各种默认变量值。

--toolchain

  • cmake toolchain文件路径。

--install-prefix

  • 安装的二进制存放路径。

--trace / --trace-expand

  • 调试时使用,用于打印已执行的cmake代码及行号。否则仅输出函数message中的内容。

--build

  • 使用cmake直接调用编译器编译项目。

--config

  • 选择需要编译的项目配置类型。

--install

  • 安装已编译好的二进制文件至 CMAKE_INSTALL_PREFIX 中。

-DCMAKE_VERBOSE_MAKEFILE=ON

  • 看到编译和链接阶段的详细输出
    等价于
set( CMAKE_VERBOSE_MAKEFILE on )
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

喜欢打篮球的普通人

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

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

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

打赏作者

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

抵扣说明:

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

余额充值