在 VS Code 中配置 C/C++ 开发环境(详细指南)

前言

Visual Studio Code(VS Code)是一个广泛使用的代码编辑器,支持多种编程语言,包括 C 和 C++。本指南将详细介绍如何在 VS Code 中设置 C/C++ 开发环境,适合新手。


1. 安装编译器

1.1. Windows 系统

推荐使用 MinGW-w64

  1. 下载 MinGW-w64

    • 访问 MinGW-w64 官网。

    • 选择适合你系统的安装程序(例如,mingw-w64-install.exe)。

  2. 安装 MinGW-w64

    • 运行安装程序,选择合适的选项。通常选择 x86_64posix 选项。

    • 安装路径可以选择 C:\Program Files\mingw-w64

  3. 设置环境变量

    • 右键点击“此电脑”或“计算机”,选择“属性”。

    • 点击“高级系统设置”,然后点击“环境变量”。

    • 在“系统变量”中,找到变量 Path,点击“编辑”。

    • 添加 MinGW 的 bin 路径,例如 C:\Program Files\mingw-w64\mingw64\bin

1.2. Linux 系统

  1. 打开终端。

  2. 使用以下命令安装 gccg++

sudo apt update
sudo apt install build-essential

这将安装常用的开发工具,包括 gccg++

1.3. macOS 系统

  1. 如果未安装 Homebrew,可以通过终端安装它:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装 gcc

brew install gcc

2. 安装 Visual Studio Code

  1. 访问 VS Code 官网。

  2. 下载并安装适合你操作系统的版本。

  3. 启动 VS Code。


3. 安装 C/C++ 扩展

  1. 打开 VS Code。

  2. 点击左侧活动栏中的扩展图标(或按 Ctrl + Shift + X)。

  3. 在搜索框中输入 C/C++,找到 Microsoft 提供的 C/C++ 扩展,点击“安装”。


4. 创建 C/C++ 项目

4.1. 创建项目文件夹

  1. 在你的计算机上创建一个新的文件夹,命名为 MyCppProject(或其他你喜欢的名字)。

4.2. 在 VS Code 中打开项目

  1. 启动 VS Code,选择“文件” > “打开文件夹”。

  2. 选择你刚才创建的文件夹 MyCppProject

4.3. 创建源文件

  1. 在 VS Code 的左侧资源管理器中,右键点击文件夹,选择“新建文件”。

  2. 创建一个名为 main.cpp 的文件。

4.4. 编写示例代码

main.cpp 中输入以下代码:

#include <iostream>int main() {std::cout << "Hello, C++ in VS Code!" << std::endl;return 0;
}

5. 配置编译和运行

5.1. 创建任务配置

  1. 按下 Ctrl + Shift + B,VS Code 会询问你要运行的任务。

  2. 选择 C/C++: g++ build active file(如果没有这个选项,请先保存你的文件)。

  3. 这将自动创建一个 tasks.json 文件,在 .vscode 文件夹下。文件内容可能如下:

{"version": "2.0.0","tasks": [{"label": "build","type": "shell","command": "g++","args": ["-g","${file}","-o","${fileDirname}/${fileBasenameNoExtension}.exe"],"group": {"kind": "build","isDefault": true},"problemMatcher": ["$gcc"],"detail": "Generated task by Debugger."}]
}

5.2. 配置调试

  1. 点击左侧的调试图标(或按 Ctrl + Shift + D)。

  2. 点击“创建一个 launch.json 文件”链接,选择 C++ (GDB/LLDB)

  3. 这将生成一个 launch.json 文件,内容可能如下:

{"version": "0.2.0","configurations": [{"name": "C++ Launch","type": "cppdbg","request": "launch","program": "${fileDirname}/${fileBasenameNoExtension}.exe","args": [],"stopAtEntry": false,"cwd": "${workspaceFolder}","environment": [],"externalConsole": false,"MIMode": "gdb","setupCommands": [{"description": "Enable pretty-printing for gdb","text": "-enable-pretty-printing","ignoreFailures": true}],"preLaunchTask": "build"}]
}

6. 编译和运行程序

  1. 编译程序

    • Ctrl + Shift + B 运行编译任务。

    • 如果没有错误,VS Code 将生成一个可执行文件(如 main.exe)。

    • 可执行文件位于与 main.cpp 相同的目录。

  2. 运行程序

    • F5 进行调试,或在终端中输入生成的可执行文件名称(例如 ./main.exe./main)。

    • 你将看到输出 “Hello, C++ in VS Code!”。


7. 常见问题和故障排除

  • 编译器未找到

    • 确保编译器的 bin 目录已添加到系统 PATH 环境变量中。重新启动 VS Code 后再试。

  • 调试时无法找到可执行文件

    • 检查 launch.json 中的 program 路径是否正确,确保它指向生成的可执行文件。

  • IntelliSense 不工作

    • 确保安装了 C/C++ 扩展并且项目中存在有效的 c_cpp_properties.json 文件(如果未生成,可以手动创建)。

  • 在 Linux 上可能需要设置文件权限

    • 使用以下命令设置可执行权限:

chmod +x main

总结

通过以上步骤,你应该能够在 VS Code 中成功配置 C/C++ 开发环境,并能够编写、编译和运行简单的 C/C++ 程序。VS Code 的强大功能和灵活性使其成为理想的开发工具,随着你的技能提升,你可以探索更多的配置和功能,比如使用 Git 进行版本控制、配置其他库等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/53653.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

golang如何把微信支付结构体拼接为对参数按照key=value的格式,并按照参数名ASCII字典序排序

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…

Claude 的上下文检索功能提升了 RAG 准确率,这会是人工智能革命?

前言 在人工智能领域不断进步的过程中&#xff0c;人们对更准确且具备上下文理解能力的响应的追求&#xff0c;催生了诸多突破性创新。 而 Claude 的上下文检索技术就是其中一项进步&#xff0c;有望显著提升检索增强生成 (RAG) 系统的表现。 可能有同学就要问了&#xff1a;…

付费计量系统的标准化框架(中)

1.1通用过程 Generic processes See Clause 10 for a more complete definition of generic processes that are found in payment metering systems and those activities that are required to operate a payment metering system. Any specific system or sub-system imple…

uniapp实现在表单中展示多个选项,并且用户可以选择其中的一个或多个选项

前言 uni-data-checkbox是uni-app的一个组件,用于在表单中展示多个选项,并且用户可以选择其中的一个或多个选项。该组件可以通过设置不同的参数来控制选项的样式、布局和行为。 提示:以下是本篇文章正文内容,下面案例可供参考 uni-data-checkbox组件具有以下特点:: 1、跨…

Html--笔记01:使用软件vscode,简介Html5--基础骨架以及标题、段落、图片标签的使用

一.使用VSC--全称&#xff1a;Visual Studio Code vscode用来写html文件&#xff0c;打开文件夹与创建文件夹&#xff1a;①选择文件夹 ②拖拽文件 生成浏览器的html文件的快捷方式&#xff1a; &#xff01;enter 运行代码到网页的方法&#xff1a; 普通方法&#xff1a…

linux命令记录 ss 和 lsof

ss ss 命令是 Linux 中用于查看和分析套接字&#xff08;sockets&#xff09;状态的工具&#xff0c;功能类似于 netstat&#xff0c;但提供了更快、更详细的信息。以下是对 ss 命令的详细介绍&#xff0c;包括常用选项及其用法&#xff1a; 基本用法 ss [选项]常用选项 -t…

Debian与Ubuntu:深入解读两大Linux发行版的历史与联系

Debian与Ubuntu&#xff1a;深入解读两大Linux发行版的历史与联系 引言 在开源操作系统的领域中&#xff0c;Debian和Ubuntu是两款备受瞩目的Linux发行版。它们不仅在技术上有着密切的联系&#xff0c;而且各自的发展历程和理念也对开源社区产生了深远的影响。本文将详细介绍…

从零开始学习Python

目录 从零开始学习Python 引言 环境搭建 安装Python解释器 选择IDE 基础语法 注释 变量和数据类型 变量命名规则 数据类型 运算符 算术运算符 比较运算符 逻辑运算符 输入和输出 控制流 条件语句 循环语句 for循环 while循环 循环控制语句 函数和模块 定…

【裸机装机系列】12.kali(ubuntu)-优化-减少var,tmp目录等存储占用空间

推荐阅读&#xff1a; 1.kali(ubuntu)-为什么弃用ubuntu&#xff0c;而选择基于debian的kali操作系统 如果你在安装partition disks的时候选择的是“separate /home,/var and /tmp paratitions”,会自动为你分区大小&#xff0c;由于自动分配的/var和/tmp分区比较小&#xff0c…

Robot Operating System——带有时间戳和坐标系信息的三维向量

大纲 应用场景1. 机器人运动控制场景描述具体应用 2. 传感器数据处理场景描述具体应用 3. 物体姿态表示场景描述具体应用 4. 物理仿真场景描述具体应用 5. 无人机飞行控制场景描述具体应用 6. 自动驾驶车辆控制场景描述具体应用 定义字段解释 案例 geometry_msgs::msg::Vector3…

丹摩智算(damodel)部署stable diffusion实验

名词解释&#xff1a; 丹摩智算&#xff08;damodel&#xff09;&#xff1a;是一款带有RTX4090&#xff0c;Tesla-P40等显卡的公有云服务器。 stable diffusion&#xff1a;是一个大模型&#xff0c;可支持文生图&#xff0c;图生图&#xff0c;文生视频等功能 一.实验目标 …

SQLServer TOP(Transact-SQL)

1、本文内容 语法参数最佳实践兼容性支持互操作性限制和局限示例 适用于&#xff1a; Microsoft Fabric Microsoft FabricWarehouse 中的 SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure SynapseAnalytics Analytics Platform System &#xff08;PDW&#xff09;SQL A…

Java中的数据一致性策略:从最终一致性到强一致性的选择

Java中的数据一致性策略&#xff1a;从最终一致性到强一致性的选择 大家好&#xff0c;我是微赚淘客返利系统3.0的小编&#xff0c;是个冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们来讨论Java后端开发中非常重要的一个概念&#xff1a;数据一致性。数据…

MODELS 2024震撼续章:科技与可持续性的未来交响曲

MODELS 2024国际会议正如火如荼地进行着&#xff0c;每一天都充满了新的发现与启迪&#xff0c;每一场分享都是对技术前沿的一次深刻探索&#xff0c;更是对现实世界可持续性挑战的一次积极回应。现在让我们继续这场科技盛宴&#xff0c;看看小编为您精选几场的学术分享吧~ 会议…

地质工程专业职称申报条件详细解读

一、初级&#xff08;助理&#xff09;地质工程工程师评审条件&#xff1a; 1、理工类或者地质工程类专业毕业 2、专科毕业满3年或本科毕业满1年 3、研究生毕业&#xff0c;从事本专业技术工作&#xff0c;当年内考核认定 二、中级地质工程工程师评审条件&#xff1a; 1、理工…

【LeetCode刷题】链表篇

203. 移除链表元素 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode next;* ListNode() {}* ListNode(int val) { this.val val; }* ListNode(int val, ListNode next) { this.val val; this.next next; }* }*…

每天一道面试题(18):Redis 和 MySQL 如何保证数据一致性

引言 在现代分布式系统中&#xff0c;Redis 常被用作缓存层以提升应用性能&#xff0c;而 MySQL 则作为持久化存储。然而&#xff0c;由于二者的数据存储特性不同&#xff0c;保证 Redis 和 MySQL 之间的数据一致性是一个重要且复杂的问题。在这篇学习笔记中&#xff0c;我们将…

大数据 flink 01 | 从零环境搭建 简单Demo 运行

什么是Flink Flink是一个开源的流处理和批处理框架,它能够处理无界和有界的数据流&#xff0c;具有高吞吐量、低延迟和容错性等特点 Flink 可以应用于多个领域如&#xff1a;实时数据处理、数据分析、机器学习、事件驱动等。 什么是流式处理&#xff1f;什么是批处理 流处理…

xQTLs 共定位分析(XQTLbiolinks包)

XQTL 共定位分析 XQTLbiolinks 是一个端到端的生物信息学工具&#xff0c;由深圳湾实验室李磊研究团队开发&#xff0c;用于高效地分析公共或用户定制的个xQTLs数据。该软件提供了一个通过与 xQTLs 共定位分析进行疾病靶基因发现的流程&#xff0c;以检测易感基因和致病变异。…

vimax通信协议

关于“Vimax通信协议”&#xff0c;实际上可能存在一定的误解或混淆。在通信技术和网络领域&#xff0c;并没有广泛认知的名为“Vimax”的通信协议。然而&#xff0c;您可能是在询问关于“WiMAX”的信息&#xff0c;因为“WiMAX”与“Vimax”在发音上相近&#xff0c;且WiMAX是…