首页 > 编程语言 >配置vscode中C&C++编译环境

配置vscode中C&C++编译环境

时间:2024-09-03 12:25:23浏览次数:4  
标签:文件 gcc exe vscode C++ 编译 文件夹

配置vscode中C&C++编译环境

参考文章链接在文末。
Win10系统。
本文可能不太适合完全小白的同学参考学习...
如果你在配置中遇到了什么问题,可以看一看,或许我能为你提供解决方案。

一、卸载VScode,删除之前的配置

这一步主要是因为本人之前一直在用vscode,但是各种扩展的使用混乱不堪,导致现在想规整也无从下手。于是打算全部删除,从头再来。
如果你从未使用过vscode,那么这一部分可以直接跳过。

  1. 卸载vscode本体,直接去控制面板卸就行。
  2. 删除如图所示的两个文件夹:
    img
    img
    这两个文件夹都是存放插件和用户配置有关的,他们并不会随着vscode的卸载而被删除,而是需要我们手动删除。

二、 安装VScode

没啥好说的,直接从官网下,按步骤走就可以了。官网地址:
https://code.visualstudio.com

三、 配置编译环境

首先,打开vscode,点击屏幕右侧的扩展(Extensions)按键,下载如下扩展:
最后一个中文扩展可以自行选择是否需要下载

  • C/C++
  • Code Runner
  • Chinese (Simplified)(简体中文)
  1. 编译软件配置

vscode本身是并不具备编译功能的,就好像你在记事本、Word、Notepad里都可以编写代码,但是你无法在这些软件中编译他们。

要想让代码“跑”起来,你还需要再另行下载编译器。本人使用的是mingw,在此不再详细描述具体安装方法,记得将其添加到PATH中。如果想要看自己的mingw版本,请在命令行中输入以下指令:
gcc -v

  1. 生成vscode配置文件

接下来我们要生成一个叫“.vscode”的文件夹,其中用来存放vscode编译过程中的配置文件。在接下来的步骤中你会发现,vscode会自动将该文件夹生成到打开的工作区根目录(即项目的根目录)中,并且在你编译该文件夹下的任何文件时,查找该.vscode 文件夹,并根据其中的配置文件来执行相应的任务。

具体配置步骤如下所述:

使用ctrl+shift+P快捷键打开命令面板,打开如下选项:
img
点击后,vscode会自动为你生成一个叫作.vscode的文件夹,里面存放有c_cpp_properties.json文件。其中的文件内容大致是这样的:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

目前看来,需要我们注意的是compilerPath的值,它应该是你的mingw路径,深入到gcc.exe即可。如果是c++好像是要加个g++来着...

接下来,打开命令面板中如下第一个选项:
img
选择第一个:
img
然后,.vscode文件夹下会多出一个tasks.json文件。大致文件内容如下:

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: gcc.exe build active file",
			"command": "C:\\Program Files\\mingw64\\bin\\gcc.exe",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}\\${fileBasenameNoExtension}.exe"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "compiler: C:\\Program Files\\mingw64\\bin\\gcc.exe"
		}
	]
}

我没有对其进行任何的改动,但是稍微研究了一下其中的opitons条目。我注意到有些博客中,这一条目下的cwd(即Current Working Directory,当前工作目录)写的是mingw下的bin目录,个人认为这是不正确的,一般写当前工作目录即可。

理论上来讲到此为止就已经可以跑程序了。虽然还有一个launch.json没配置,但是那个好像只是和debug有关...先来不进行调试,直接构建(生成exe文件)并运行(exe文件)吧。

我们先写一个简单的test.c文件:

#include <stdio.h>

int main(){
    printf("hi\n");
    return 0;
}

执行构建和运行的方法多种多样,本人目前用着比较顺手的方法是:
首先,按ctrl+shift+B进行构建,执行成功的话会在左侧文件管理区看到,多出了如下.exe文件:
img
之后,将该exe文件拖至终端里,回车即可运行:
img


一路陪伴,感恩有你 ·ω·
参考文章:
https://blog.csdn.net/qq_38711818/article/details/111048969
https://www.cnblogs.com/thinkgone/p/16348956.html

标签:文件,gcc,exe,vscode,C++,编译,文件夹
From: https://www.cnblogs.com/LingLiquor09/p/18382317

相关文章

  • C++ 设计模式——解释器模式
    目录C++设计模式——解释器模式1.主要组成成分2.逐步构建解释器模式步骤1:定义抽象表达式步骤2:实现终结符表达式步骤3:实现非终结符表达式步骤4:构建语法树步骤5:实现内存管理步骤6:创建上下文和客户端3.解释器模式UML图UML图解析4.解释器模式的优点5.......
  • C++ 设计模式——设计模式总结
    目录C++设计模式——设计模式总结1.面向对象程序设计的几个原则2.设计模式的分类3.设计模式的定义3.1创建型设计模式的定义3.2结构型设计模式的定义3.3行为型设计模式的定义4.重要提示C++设计模式——设计模式总结设计模式是软件设计中常见问题的典型解决......
  • 在Linux中使用C++调用Python程序
    为什么要用C++调Python我们训练部署CNN模型时,服务器用Pytorch测试的精度比我们部署端精度高0.5%。经过多方排查,发现是由于Pytorch预处理图片使用PIL进行图片读取和尺寸调整,但是部署端采用OpenCV进行图片读取和尺寸调整。两种实现方式实现的Resize操作差异非常大。为了快速完成项......
  • windows C++ 并行编程-并发的异常处理(三)
    并发运行时使用C++异常处理来传达多种错误。这些错误包括:无效使用运行时、无法获取资源等运行时错误,以及你提供给任务和任务组的工作函数中发生的错误。当任务或任务组引发异常时,运行时会保存该异常并将其编组到等待任务或任务组完成的上下文。对于轻量级任务和代理等组件......
  • 【最新原创毕设】基于微信小程序的老年人健康医疗信息服务平台设计+24246(免费领源码)可
    摘 要老年人健康是社会关注的重点之一,随着我国人口老龄化程度的增加,老年人的健康问题逐渐凸显。为了更好地满足老年人的健康需求,提高医疗服务质量和效率,开发一个基于SpringBoot的老年人健康医疗信息服务平台是十分必要的。老年人健康医疗信息服务平台利用Java语言,通过spring......
  • windows C++ 并行编程-并发的异常处理(二)
    并发运行时使用C++异常处理来传达多种错误。这些错误包括:无效使用运行时、无法获取资源等运行时错误,以及你提供给任务和任务组的工作函数中发生的错误。当任务或任务组引发异常时,运行时会保存该异常并将其编组到等待任务或任务组完成的上下文。对于轻量级任务和代理等组件......
  • C++学习笔记(四)类和对象
    类和对象C++对象模型和this指针成员变量和成员函数的存储C++中的成员变量和成员函数是分开存储的,只有非静态成员变量才属于类的对象上classPerson{intm_Age;//非静态成员变量staticintm_B;//静态成员变量voidfunc(){//不属于类的对象上}staticv......
  • c++入门基础
    欢迎来到c++入门基础的学习目录1、第一个c++程序2、命名空间3、c++的输入与输出4、缺省参数5、函数重载6、详解引用(引用属于重点知识)7、指针与引用的差别8、内联函数9、nullptr在学习c++之前我们要知道c++是什么—c++是c语言的扩展,主要在c语言之上添加了封装、继......
  • 读书笔记:高效C/C++调试
    高效C/C++调试(美)严琦、卢宪廷目录第1章调试符号和调试器11.1调试符号11.1.1调试符号概览2全局变量文件行号数据类型1.1.2DWARF格式31.2实战故事1:数据类型的不一致141.3调试器的内部结构161.3.1用户界面161.3.2符号管理模块161.3.3目标管理模块......
  • C++(static_cast)
    目录1.语法2.示例3.为什么选择static_cast总结static_cast是C++中的一种类型转换运算符,用于在不同的数据类型之间进行安全转换。与C风格的强制类型转换不同,static_cast更加安全和明确。它主要用于进行类型转换时,确保转换是合法的,并且不会引入不必要的风险。1.语法......