当前位置: 首页 > news >正文

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 准备文件

创建如下的目录和文件:

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

CMakeLists.txt文件内容如下:

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文件内容如下:

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

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

选择VS编译器:
在这里插入图片描述
在这里插入图片描述
这个操作背后 是执行的cmake命令生成构建系统:

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 编译

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

相关文章:

  • STM32简易示波器/逻辑分析仪设计指南
  • 02-性能方案设计
  • C++算法训练营 Day13二叉树专题(1)
  • 力扣-20.有效的括号
  • STM32标准库-ADC数模转换器
  • 基于ffmpeg+sdl的audio player
  • 模型重展UV后绘制纹理
  • [Java 基础]String 类
  • Java NIO详解:新手完全指南
  • 【技巧】dify前端源代码修改第一弹-增加tab页
  • python打卡day49@浙大疏锦行
  • 逻辑回归暴力训练预测金融欺诈
  • 电路图识图基础知识-远程/本地启停电动机(二十一)
  • 记录一篇HTTPS的文章
  • 如何让hustoj支持Java判题
  • 开放词汇检测分割YOLOE从pytorch到caffe
  • Spring状态机
  • Docker简述
  • React Hooks 的原理、常用函数及用途详解
  • Python打卡训练营学习记录Day49
  • 阿里巴巴做企业网站/网络营销专业可以干什么工作
  • 南京做网站团队/石家庄热搜
  • 建设网站目的及功能定位是什么/淘宝关键词热度查询工具
  • 祖传做网站/做网站流程
  • 株洲专业网站建设品牌/账号权重查询入口
  • 如何找有需求做网站的公司/灰色seo关键词排名