title: vscode+msvc+cmake
top: 41
date: 2024-02-28 13:48:43
tags:
- vscode
- msvc
- cmake
- windows
categories:
- c++
vscode
软件安装
- 当前最新版本蓝奏云地址 vscode安装包 。其他版本及更新版本可浏览器搜索后下载。
插件推荐
- C/C++
C++开发必选插件
- cmake
cmake开发插件
- Include Autocomplete
自动头文件包含
嗯,我这边include头文件,一直有红线提示找不到,修改launch.json后也没用,加了这个插件后就正常了
- C/C++ Snippets
c++代码模版提示
- Material Icon Theme
美化工具,文件列表显示带图标主题
- GitHub Theme
美化工具,主题美化
vscode变量
变量 | 功能 |
---|---|
${workspaceFolder} | 项目所在目录的绝对路径,即vscode中当前工程的根目录 |
${workspaceFolderBasename} | 项目所在目录的目录名 |
${file} | 当前打开文件的绝对路径 |
${fileDirname} | 当前打开文件所在目录的绝对路径 |
${relativeFileDirname} | 当前打开文件的文件名 |
${cwd} | 任务运行器启动时的当前工作目录 |
${fileExtname} | 当前打开文件的扩展名 |
${lineNumber} | 活动文件中当前选定的行号 |
${selectedText} | 活动文件中当前选定的文本 |
${execPath} | 运行VS Code可执行文件的路径 |
${defaultBuildTask} | 默认构建任务的名称 |
${pathSeparator} | 操作系统用来分隔文件路径中的组件的字符 |
MSVC
- 下载visual studio,配置C++相关环境
cmake
软件安装
- camke-3.26.5蓝奏云地址 cmake安装包 。其他版本及更新版本可浏览器搜索后下载。
- 配置系统环境变量
*\bin
vscode + cmake + MSVC
vscode工程目录结构
demo
├── .vscode
│ ├── c_cpp_properties.json
│ ├── launch.json
│ ├── setting.json
│ └── tasks.json
├── main.cpp
└── CMakeLists.txt
-
main.cpp
// main.cpp #include <iostream> void main() { std::cout << "Hello World" << std::endl; }
-
CMakeLists.txt
# CMakeLists.txt cmake_minimum_required(VERSION 3.23) project(demo) set(CMAKE_CXX_COMPILER cl) set(CMAKE_CXX_STANDARD 17) set(CMAKE_GENERATOR_PLATFORM x64) add_executable(demo main.cpp)
-
.vscode/c_cpp_properties.json
{ "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "D:/install/major/vs2019/VC/Tools/MSVC/14.29.30133/include", "D:/Windows Kits/10/Include/10.0.19041.0/ucrt" ], "defines": [ "_DEBUG", "UNICODE", "_UNICODE" ], "windowsSdkVersion": "10.0.19041.0", "compilerPath": "cl.exe", "cStandard": "c17", "cppStandard": "c++17", "intelliSenseMode": "windows-msvc-x64", "configurationProvider": "ms-vscode.cmake-tools" } ], "version": 4 }
-
.vscode/launch.json
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(Windows) Launch", "type": "cppvsdbg", "request": "launch", "program": "${workspaceFolder}/cmake-build/Debug/demo.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "console": "integratedTerminal", "preLaunchTask": "cbuild" } ] } //1. program 为main.cpp编译成的二进制可执行文件,vscode F5后,会执行该二进制文件 //2. args 为二进制可执行文件可接受的命令行参数 //3. preLaunchTask 为预加载任务,在运行 program 前会在tasks.json中查找 label 为 cbuild 的任务 //4. console 值为externalTerminal时会在二进制可执行文件运行时弹出windows bash窗口,值integratedTerminal则会用vscode窗口替代
-
.vscode/tasks.json
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "options": { "cwd": "${workspaceFolder}" }, "tasks": [ { "label": "cbuild", "type": "shell", "command": "cmake", "args": [ "--build", "${workspaceFolder}/cmake-build", "--target", "${workspaceFolderBasename}", "-j", "4" ], "dependsOn":[ "build" ] }, { "label": "build", "type": "shell", "command": "cmake", "args": [ "-DCMAKE_BUILD_TYPE=Debug", "-S", "${workspaceFolder}", "-B", "${workspaceFolder}/cmake-build" ] } ] } //1. options/cwd 为tasks的执行路径 //2. label 为任务标签 //3. command 为命令名称 //4. args 为任务命令可接受参数,这个值也可以拼接在command后。如, // "command": "cmake -DCMAKE_BUILD_TYPE=Debug -S ${workspaceFolder} -B ${workspaceFolder}/cmake-build", // "args": [], //5. dependsOn 当前任务所依赖任务列表,也即在执行当前任务前会有限执行dependsOn列表内的任务,注意:列表内的任务默认时多个并发执行的
参考链接
[1] (vs code中的类似${workspaceFolder}的变量的解释-CSDN博客)
[2] vscode配置C/C++常用插件,亲测好用_vscode c/c++插件-CSDN博客