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

C++ 01.vscode配置c++开发环境

1. vscode配置c++开发环境

在windows下开发C++,可以使用Visual StudioVisual Studio Code进行开发。

以下是两者的简要区别

特性Visual StudioVisual Studio Code
类型集成开发环境 (IDE)轻量级代码编辑器
功能提供全面的开发工具和服务,支持多种编程语言提供代码编辑、调试和版本控制等功能,通过插件支持其他语言
用户界面功能丰富,适合复杂项目管理界面简洁,易于上手,高度可定制
易用性学习曲线较陡,适合有经验的开发者学习曲线平缓,适合初学者和快速开发
编程语言支持原生支持多种编程语言,包括C++通过安装扩展支持多种编程语言,包括C++
扩展性提供了丰富的扩展和插件生态系统,但与IDE集成得更深入具有很高的扩展性和灵活性,拥有活跃的社区和大量的第三方插件
价格有免费的社区版,但专业版和企业版需要付费许可完全免费且开源
适用场景大型和复杂的软件开发项目快速代码编写和小型项目,支持调试和版本控制

本文介绍在 Visual Studio Code 下配置 C++ 开发环境的方法。 请自行安装vcpkgcmakeVisual Studio等相关软件。

1.1. 安装插件

需要安装的插件见下图

1.2. c_cpp_properties.json

c_cpp_properties.jsonVS 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. 主要作用:

  1. 配置 IntelliSense(代码补全、语法检查)

    • includePath:指定头文件搜索路径(如系统头文件、第三方库头文件)。
    • defines:定义预处理宏(如 _DEBUGUNICODE)。
    • cStandard / cppStandard:指定 C/C++ 标准版本(如 c17c++17)。
  2. 配置编译器选项

    • compilerPath:指定使用的编译器路径(如 cl.exe 是 MSVC 编译器)。
    • intelliSenseMode:指定 IntelliSense 的编译模式(如 windows-msvc-x64 表示 MSVC 64 位模式)。
  3. 支持多配置

    • configurations 数组可定义多个环境(如 Win32Linux),方便跨平台开发。

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"}
}

注意:

  1. 建议在进行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. 参考

  1. VS Code C/C++ 扩展
    Studio的调试功能相比,还是有差别,建议使用Visual studio Code进行开发,再使用 Visual Studio`进行调试。

1.6. 参考

  1. VS Code C/C++ 扩展
http://www.xdnf.cn/news/569449.html

相关文章:

  • 5.21本日总结
  • 两足行走机器人:仿生设计与智能控制的技术革命
  • Zabbix开源监控的全面详解!
  • 论文阅读:Auto-Encoding Variational Bayes
  • 信奥赛-刷题笔记-栈篇-T3-P1901发射站0521
  • 在 Windows 系统部署对冲基金分析工具 ai-hedge-fund 的笔记
  • 科普: 天然气蓝牙卡充值流程
  • CST软件基础四:电场和电导的设置
  • Unity基础学习(五)Mono中的重要内容(1)延时函数
  • Model 是 Agent 的大脑(以camel为例)
  • 补充Depends 和 request: Request 依赖注入用法的注意事项
  • 【C++ Primer 学习札记】智能指针
  • 构建 PyMNN
  • Halcon窗口的基本操作
  • Elasticsearch生产环境性能调优指南
  • Spring Boot + +小程序, 快速开发零工市场小程序
  • 如何使用 Docker Compose 部署 Immich
  • 《棒球百科知识》世界棒球十强国家是如何发展·棒球1号位
  • WordPress Madara插件存在文件包含漏洞(CVE-2025-4524)
  • 实验分享|基于千眼狼sCMOS科学相机的流式细胞仪细胞核成像实验
  • XCOSnTh-fatfsShell
  • 腾讯位置服务地点搜索开发指南
  • [Min-Max Normalization] [Z-Score Normalization]
  • 使用vue2做一个生成二维码的案例【可当组件使用】
  • JC/T 2848-2024 玻璃纤维增强石膏(GRG)装饰制品检测
  • VS2022:使用命令行启动项目
  • 2023 睿抗机器人开发者大赛CAIP-编程技能赛-本科组(国赛) 解题报告 | 珂学家
  • vscode连接WSL卡住
  • js不同浏览器标签页、窗口或 iframe 之间可以相互通信
  • 虚拟机下的OpenWrt磁盘Overlay扩容