2.8 C/C++开发环境:VSCode+CMake+VS2017

使用VSCode中的CMake插件,配置VS编译器并生成构建系统。

一、软件安装

1.1 软件下载

VS和VSCode下载Visual Studio 2022 + Visual Studio Code

CMake下载cmake-4.0.2-windows-x86_64.msi

1.2 安装

(1)cmake安装

默认是勾选将cmake路径添加到环境变量中的 ,如果没有则要手动添加到PATH环境变量下。

(2)VS安装

注意:选好要下载的部分:

  • 使用C++的桌面开发
  • Visual Studio扩展开发

(3)vscode和cmake插件安装

二、配置使用

2.1 准备文件

创建如下的目录和文件:

bash 复制代码
# tree TestDemon/
TestDemon/
├── CMakeLists.txt    # cmake配置文件
└── hello.c           # 源码

CMakeLists.txt文件内容如下:

text 复制代码
cmake_minimum_required(VERSION 3.10)
project(hello VERSION 1.0)

set(CXX_STANDARD 11)
set(CXX_STANDARD_REQUIRED True)

add_executable(hello hello.c)

hello.c文件内容如下:

c 复制代码
#include <stdio.h>
int main()
{
    printf("hello ffmpeg \r\n");
    return 0;
}

2.2 配置VS编译器 并生成构建系统

选择VS编译器:

这个操作背后 是执行的cmake命令生成构建系统:

bash 复制代码
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE --no-warn-unused-cli -S./ -B./build -G "Visual Studio 16 2019" -T host=x64 -A x64
  • -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE 启用生成compile_commands.json文件,这个文件被许多代码分析工具(如clangd)使用:BOOL=TRUE显式指定这是一个布尔值并设为TRUE
  • --no-warn-unused-cli 禁止显示未使用的命令行参数的警告,当你在命令行传递一些CMakeLists.txt中没有使用变量时不会警告
  • -S./ 指定源目录(项目根目录,即包含CMakeLists.txt的地方)./ 表示当前目录
  • -B./build 指定构建目录(生成构建系统文件将放在这里)
  • -G "Visual Studio 15 2017" 指定生成器(Generator)
    • Visual Studio 15 2017 是vs2017的CMake标识符
    • Visual Studio 16 2019
    • Visual Studio 17 2022
  • -T host=x64 指定工具集(Toolset)表示使用64位版本构建工具
  • -A x64 指定平台(Architecture) x64 表示生成64位目标平台

2.3 编译

bash 复制代码
# 使用原来生成的配置
cd build
cmake --build . --config Debug
cmake --build . --config Release

# 重新生成配置(要先删除build目录)
mkdir build && cd build
cmake ..  # 生成配置
cmake --build . --config Debug
cmake --build . --config Release