C++ 01.vscode配置c++开发环境
1. vscode配置c++开发环境
在windows下开发C++,可以使用Visual Studio 或 Visual Studio Code进行开发。
以下是两者的简要区别
| 特性 | Visual Studio | Visual Studio Code | 
|---|---|---|
| 类型 | 集成开发环境 (IDE) | 轻量级代码编辑器 | 
| 功能 | 提供全面的开发工具和服务,支持多种编程语言 | 提供代码编辑、调试和版本控制等功能,通过插件支持其他语言 | 
| 用户界面 | 功能丰富,适合复杂项目管理 | 界面简洁,易于上手,高度可定制 | 
| 易用性 | 学习曲线较陡,适合有经验的开发者 | 学习曲线平缓,适合初学者和快速开发 | 
| 编程语言支持 | 原生支持多种编程语言,包括C++ | 通过安装扩展支持多种编程语言,包括C++ | 
| 扩展性 | 提供了丰富的扩展和插件生态系统,但与IDE集成得更深入 | 具有很高的扩展性和灵活性,拥有活跃的社区和大量的第三方插件 | 
| 价格 | 有免费的社区版,但专业版和企业版需要付费许可 | 完全免费且开源 | 
| 适用场景 | 大型和复杂的软件开发项目 | 快速代码编写和小型项目,支持调试和版本控制 | 
本文介绍在 Visual Studio Code 下配置 C++ 开发环境的方法。 请自行安装vcpkg,cmake,Visual Studio等相关软件。
1.1. 安装插件
需要安装的插件见下图
 
1.2. c_cpp_properties.json
c_cpp_properties.json 是 VS Code C/C++ 扩展(Microsoft 的 C/C++ 插件)的配置文件,用于定义 C/C++ 项目的编译环境、头文件路径、编译器选项等。
 该文件位于 .vscode 目录下,可手动创建或通过 C/C++: Edit Configurations (UI) 命令生成。
以下是示例配置:
{"configurations": [{"name": "Win32","includePath": ["${workspaceFolder}/**","${VCPKG_ROOTDIR}/installed/x64-windows/include"],"defines": ["_DEBUG","UNICODE","_UNICODE"],"windowsSdkVersion": "10.0.22000.0","compilerPath": "cl.exe","cStandard": "c17","cppStandard": "c++17","intelliSenseMode": "windows-msvc-x64"}],"version": 4
}
 
1.2.1. 主要作用:
-  
配置 IntelliSense(代码补全、语法检查)
includePath:指定头文件搜索路径(如系统头文件、第三方库头文件)。defines:定义预处理宏(如_DEBUG、UNICODE)。cStandard/cppStandard:指定 C/C++ 标准版本(如c17、c++17)。
 -  
配置编译器选项
compilerPath:指定使用的编译器路径(如cl.exe是 MSVC 编译器)。intelliSenseMode:指定 IntelliSense 的编译模式(如windows-msvc-x64表示 MSVC 64 位模式)。
 -  
支持多配置
configurations数组可定义多个环境(如Win32、Linux),方便跨平台开发。
 
1.2.2. 示例中的关键字段:
"${workspaceFolder}/**":包含工作区所有目录的头文件。"${VCPKG_ROOTDIR}/installed/x64-windows/include":vcpkg 管理的第三方库头文件路径。"windowsSdkVersion": "10.0.22000.0":指定 Windows SDK 版本。
修改此文件可优化代码补全和编译检查,但需与实际项目配置一致。
如果没有采用这个文件,我们在看源码时,一些系统或第三方的头文件就无法被识别,导致 IntelliSense 无法正常工作。
 如下图,有红色波形线,说明 IntelliSense 无法识别 <fmt/core.h> 头文件。
 
以下是正确配置后的显示效果,可以看到没有红色波形线了。

1.3. CMakelists.txt
以下是示例配置:
cmake_minimum_required(VERSION 3.10)# 设置项目名称和语言
project(VulkanChecker LANGUAGES CXX)# 设置C++标准
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(fmt CONFIG REQUIRED)# 添加可执行文件
add_executable(main main.cpp)target_link_libraries(main PRIVATE fmt::fmt)# 如果是Windows系统,设置可执行文件的输出目录
if(WIN32)set_target_properties(mainPROPERTIESRUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
endif()
 
已经用```vcpkg install fmt`
 用在命令行中执行以下语句能正确配置
# 生成构建目录并配置CMake工程
cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=C:/Users/Admin/workspace/vcpkg/scripts/buildsystems/vcpkg.cmake
 
但如果直接用cmake进行配置,会报错
 以下是进行配置
 
 以下是报错信息
 
原因:
 CMakeLists.txt 文件中,find_package(fmt CONFIG REQUIRED) 这一行,fmt 是一个第三方库,由于没有正确配置CMAKE_TOOLCHAIN_FILE=C:/Users/Admin/workspace/vcpkg/scripts/buildsystems/vcpkg.cmake,所以找不到fmt库。
解决办法:**
在.vscode目录下,创建settings.json文件,添加以下语句
{"cmake.configureSettings": {"CMAKE_TOOLCHAIN_FILE": "C:/Users/Admin/workspace/vcpkg/scripts/buildsystems/vcpkg.cmake"}
}
 
注意:
- 建议在进行
cmake配置时,先将build目录删除,再重新生成。以免有时出现稀奇古怪的错误。 
1.4. 生成可执行文件
1.4.1. 使用CMake生成可执行文件(建议)
点击build按钮,生成可执行文件,类似cmake --build build
下图两个红框处都可以生成可执行文件
 
1.4.2. 使用cl.exe编译器生成可执行文件
参考 VS Code C/C++ 扩展 进行相应配置
 点开cpp文件的右上角进行编译和运行
 
当遇到遇到问题:
cl.exe build and debug active file is only usable when VS Code is run from the Developer Command Prompt for VS.
 
解决办法:
 如果在尝试使用cl.exe构建和调试时出错,请确保您已使用代码从Visual Studio的开发人员命令提示符启动了 Code .
 
1.5. 设置断点&调试
可以在main.cpp中设置断点,然后点击调试按钮,即可进行调试
 
当然,插件的调试功能与Visual Studio的调试功能相比,还是有差别,建议使用Visual studio Code进行开发,再使用 Visual Studio进行调试。
1.6. 参考
- VS Code C/C++ 扩展
Studio的调试功能相比,还是有差别,建议使用Visual studio Code进行开发,再使用Visual Studio`进行调试。 
1.6. 参考
- VS Code C/C++ 扩展
 
