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

news2024/9/26 3:20:25

前言

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.coloradmin.cn/o/2165584.html

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

相关文章

JVM内存区域详解及DirectByteBuffer内存

Java虚拟机&#xff08;JVM&#xff09;是Java程序运行的基础&#xff0c;它为Java程序提供了一个与平台无关的执行环境。JVM内存区域的划分对于理解Java程序的运行机制至关重要。本文将详细介绍JVM的内存区域&#xff0c;并探讨对外内存中的DirectByteBuffer。 方法区&#x…

炉石传说辅助攻略—VMOS云手机助攻:国服回归任务要点,哪个辅助更好?

在《炉石传说》中想要轻松完成各种任务并享受游戏的乐趣&#xff0c;VMOS云手机是您的最佳辅助工具&#xff01;VMOS云手机为《炉石传说》提供了专属定制版的云手机&#xff0c;内置游戏安装包&#xff0c;不需要重新下载安装游戏&#xff0c;让您快速上手。更棒的是&#xff0…

Misc-流量分析基础

第一种&#xff1a;直接搜索flag字符串 第二种&#xff1a;flag进行了十六进制编码&#xff0c;通过十六进制编码解决 第三种&#xff1a;压缩包流量&#xff1a;tar.gz的压缩包可以直接在wireshark中解压查看&#xff0c;其他的压缩包则要将流量导出来&#xff0c;然后去解码…

微信小程序注册流程及APPID获取(完整版图文教程)

文章目录 前言1. 注册微信小程序账号1.1微信小程序注册1.2 点击注册按钮&#xff0c;进入小程序注册步骤。1.3 填写邮箱、密码、验证码1.4 用户信息登记1.5 微信扫码认证后&#xff0c;回到微信公众平台点击确认提交1.6 进小程序后台&#xff0c;完成注册 2.完善小程序账号信息…

力扣 困难 25.K个一组反转链表

文章目录 题目介绍题解 题目介绍 题解 先把链表的长度求出来&#xff0c;翻转前先判断剩余链表节点的个数&#xff0c;如果大于等于k则翻转&#xff0c;否则直接退出循环返回&#xff0c;每一个小组的翻转和上一题一样。 参考b站灵茶山艾府 class Solution {public ListNo…

汽车3d动画渲染选择哪个?选择最佳云渲染解决方案

面临汽车3D动画渲染挑战&#xff1f;选择正确的云渲染服务至关重要。探索最佳解决方案&#xff0c;优化渲染效率&#xff0c;快速呈现逼真动画。 汽车3d动画渲染选择哪个&#xff1f; 对于汽车3D动画渲染&#xff0c;选择哪个渲染器取决于你的项目需求、预算和期望的效果。Ble…

inBuilder零代码新版表单设计器特性一览

inBuilder零代码新版表单设计器正式上线&#xff0c;此次新版表单设计器相比旧版&#xff0c;优化了界面外观、提升了功能易用性、增加了许多新特性。下面跟随本文简要了解下零代码新设计器主要的几大新特性&#xff1a; 1. 优化设计器界面 新版设计器对表单上控件层级做了一…

素数判断-C语言

1.问题&#xff1a; 输入一个大于3的整数n&#xff0c;判断是否为素数&#xff08;质数&#xff09;。 2.解答&#xff1a; 对100-200之间的每一个数进行遍历&#xff0c;如果不能被3整除&#xff0c;就将此数输出&#xff0c;若能被3整除&#xff0c;就不输出此数。 3.代码&…

【CSP】2024第二轮前的准备工作

第二轮成绩还没出&#xff0c;估分有希望但不高&#xff0c;发个帖子涨rp 1. 大纲 目前最新版本2023版NOI大纲 &#xff0c;字字珠玑要细品&#xff0c;比如这次CSP-J第一轮就考到了格雷编码&#xff0c;没有经历GESP逐级洗礼的普娃哪知道这个啊。 2.在线培训 金牌教练在线…

线程的状态及常用方法

1. 线程的状态 在Java程序中&#xff0c;一个线程对象通过调用start()方法启动线程&#xff0c;并且在线程获取CPU时&#xff0c;自动执行run()方法。run()方法执行完毕&#xff0c;代表线程的生命周期结束。在整个线程的生命周期中&#xff0c;线程的状态有以下6种&#xff1…

network-scripts目录下没有ens33文件的问题

作者&#xff1a;程序那点事儿 日期&#xff1a;2023/11/09 06:52 systemctl start NetworkManager #开启网络管理器nmcli con show #查看ens33网卡对应的是ifcfg-Wired_connection_3这个文件&#xff08;网络管理器要开启&#xff0c;不然报错&#xff09;&#xff0c;或者根据…

分布式Redis(14)哈希槽

文章目录 一致性哈希算法理论普通哈希的问题一致性hash算法 Redis 使用哈希槽Redis Cluster集群 为什么Redis是使用哈希槽而不是一致性哈希呢&#xff1f;为什么Redis Cluster哈希槽数量是16384&#xff1f; 关键词&#xff1a;一致性 Hash&#xff0c;哈希槽&#xff0c; 带着…

双指针算法详解

什么是双指针 双指针算法是一种常用的算法策略&#xff0c;通常用于处理有序数组或链表&#xff0c;能够高效地解决许多问题。其核心思想是通过维护两个指针在数组或链表中移动&#xff0c;从而达到减少时间复杂度的目的。我们将通过三个示例代码来深入了解双指针算法的…

《动手学深度学习》笔记2.2——神经网络从基础→进阶 (参数管理-每层的权重/偏置)

目录 0. 前言 正文&#xff1a;参数管理 1. 参数访问 1.1 [目标参数] 1.2 [一次性访问所有参数] 1.3 [从嵌套块收集参数] 2. 参数初始化 2.1 [内置初始化] 2.2 [自定义初始化] 2.3 [参数绑定-共享参数] 3. 小结 4. 练习 0. 前言 课程全部代码&#xff08;pytorch版…

echarts地图的简单使用

echarts地图的简单使用 文章说明核心源码效果展示源码下载 文章说明 主要介绍echarts地图组件的简单使用&#xff0c;记录为文章&#xff0c;供后续查阅使用 目前只是简单的示例&#xff0c;然后还存在着一些小bug&#xff0c;主要是首个Legend的点击会导致颜色全部不展示的问题…

笔试编程-百战成神——Day02

1.简写单词 题目来源&#xff1a; 简写单词——牛客网 测试用例 算法原理 本题的主要难点就是如何识别每一个单词并且返回其首字母大写&#xff0c;最终组成一个新的字符串后输出&#xff0c;这里我们使用while(cin>>str)就可以解决&#xff0c;直接忽略每一个空格直接…

深入理解及如何使用main函数参数

目录 前言&#xff1a;一、main函数参数二、main函数参数的意义及如何使用三、从操作系统层面&#xff08;指令&#xff09;理解main函数参数 前言&#xff1a; 在平时编写代码的过程中&#xff0c;我们会经常写main函数&#xff0c;这是一个程序必不可少的&#xff0c;main 函…

信息汇总(避坑)系统

本系统前期设定为公司避坑系统&#xff0c;在此基础上衍生出公司信息汇总功能 主要功能点&#xff1a;避坑分类、标签、随笔记录、阅读人数、评论&#xff08;用户评论、匿名评论&#xff0c;评论回复等&#xff09;、系统留言&#xff08;支持表情留言&#xff09;、避坑信息…

JavaScript中的无穷大

JavaScript中的无穷大 溢出&#xff1a;overflow,数字结果超过JS表示的数字上限&#xff0c;结果为一个特殊的无穷大Infinity或负无穷大-Infinity. 下溢&#xff1a;underflow是当前结果无限接近于0比JS能表示的最小值还要小&#xff0c;将会返回0&#xff0c;负数下溢就是-0…

剑指offer JZ7 重建二叉树

描述&#xff1a; 给定节点数为 n 的二叉树的前序遍历和中序遍历结果&#xff0c;请重建出该二叉树并返回它的头结点。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6}&#xff0c;则重建出如下图所示。 思路&#xff1a; 这道题考察的是二叉树根据先序…