首页 > 系统相关 >C++学习笔记一:windows系统配置C++开发环境(VS code+g++/clang++)

C++学习笔记一:windows系统配置C++开发环境(VS code+g++/clang++)

时间:2023-12-09 19:11:19浏览次数:45  
标签:exe ++ tasks clang ++. C++

1.下载vscode

官网下载地址:

https://code.visualstudio.com/

安装时选择把软件加入到环境变量中这个选项

 

2.打开vscode,安装c/c++扩展插件

 

3.下载gcc和clang编译器

下载地址:

https://winlibs.com/

下载后解压,把bin文件夹所在的路径加入到环境变量中

加环境变量的方法:在程序栏输入envir->编辑系统环境变量,在系统环境的path变量中加入复制的文件夹路径

查看编译器是否安装成功:在程序栏搜索powershell,打开windows powershell,键入

g++ --version

clang++ --version

如果显示版本号即证明安装成功

 

 4.在vscode中编辑tasks.json配置文件

先编写一个main.cpp文件

#include <iostream>

consteval int get_value(){
    return 3;
}

int main(){
    constexpr int value = get_value();
    std::cout << "value : " << value << std::endl;
    return 0;
}

选择Terminal->Configure tasks...->g++. exe build active file(如果没有这个选项需要重启一下vs code)

再次选择Terminal->Configure tasks...->clang++. exe build active file,这个会在原本的tasks.json文件夹内加入另外一段clang++编译用的代码

这样会自动生成一个.vscode文件夹下的一个tasks.json文件,更改两个"args":[]内的内容为:

				"-g",
				"-std=c++20",
				"${workspaceFolder}\\*.cpp",
				"-o",
				"${fileDirname}\\rooster.exe"

 这里规定了编译使用的C++标准版本,要编译的文件是该文件夹内的.cpp文件后缀,以及输出的可执行文件的名称为rooster.exe

tasks.json文件总览:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "cppbuild",
            "label": "Build with GCC",
            "command": "C:\\ZSP\\Software\\mingw64\\bin\\g++.exe",
            "args": [
                "-g",
                "-std=c++20",
                "${workspaceFolder}\\*.cpp",
                "-o",
                "${fileDirname}\\rooster.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "compiler: C:\\ZSP\\Software\\mingw64\\bin\\g++.exe"
        },
        {
            "type": "cppbuild",
            "label": "Build with Clang",
            "command": "C:\\ZSP\\Software\\mingw64\\bin\\clang++.exe",
            "args": [
                "-g",
                "-std=c++20",
                "${workspaceFolder}\\*.cpp",
                "-o",
                "${fileDirname}\\rooster.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "compiler: C:\\ZSP\\Software\\mingw64\\bin\\clang++.exe"
        }
    ]
}

 label命名了编译选项中的名称,在编译程序的时候可以选择g++或者是clang++编译

 

5.编译程序:

选中.cpp文件->Terminal->Run Task...->Build with GCC或者Build with Clang

之后会生成一个名为rooster.exe的二进制文件并显示编译成功:

 

 

6.运行程序

选择Terminal->New Terminal(快捷键ctrl+shift+`)->.\rooster.exe,可以看到程序的运行结果:value : 3

 

7.配置C/C++文件

我们发现main代码中有一行自动标红,这种情况可以通过修改编辑器的配置文件来解决(这里是因为C/C++的标准问题)

View->Command platte->C/C++:Edit Configuration(UI)

拉到最下面修改C++ Standard为C++ 20,标红就会消失

 

标签:exe,++,tasks,clang,++.,C++
From: https://www.cnblogs.com/zspaiprogram/p/17891340.html

相关文章

  • C++ Qt开发:字符串QString容器
    在Qt框架中,QString是一个强大而灵活的字符串容器,专为处理Unicode字符而设计。它提供了许多方便的方法来操作和处理字符串,使得在跨平台开发中能够轻松地进行文本操作。QString是Qt开发中不可或缺的一部分,它的灵活性和强大的功能使其成为处理文本和字符串操作的理想选择。本篇......
  • notepad++怎么匹配不改原内容在后面添加
    notepad++使用正则表达式替换(原有内容上增加替换)的方法需求说明如下我保存了三酷猫的首页Html来作演示。框起来的rel="xxx"。我想给每一个xxx+yy怎么做呢?当然你可以手动,但是这里我们可以看到xxx的值有很多不同的值,查找起来也麻烦。如果有成百上千个这样的,更恼火了。这里我们......
  • 【编译原理】用C/C++编写一个LL(1)解析器
    任务描述本关任务:用C/C++编写一个LL(1)解析器相关知识为了完成本关任务,你需要掌握:LL文法C/C++编程语言基础C语言的基本结构知识LL(1)解析器在创建解析器之前,你应该创建一个下面文法的LL(1)分析表。C/C++本实训涉及函数、结构体,标准流输入输出,字符串等操作实验要求......
  • 用 C/C++ 编写一个 C 语言的语法分析器程序
    任务描述本关任务:用C/C++编写一个C语言的语法分析器程序。相关知识为了完成本关任务,你需要掌握:1.DFANFA,2.C/C++编程语言基础。3.C语言的基本结构知识自动机在编译原理课堂上已经教授了大家相关知识。在完成本实训前,一定要先设计相关自动机,再开始相关功能的实现。切勿......
  • C++ Qt开发:Qt的安装与配置
    Qt是一种C++编程框架,用于构建图形用户界面(GUI)应用程序和嵌入式系统。Qt由Qt公司(前身为Nokia)开发,提供了一套跨平台的工具和类库,使开发者能够轻松地创建高效、美观、可扩展的应用程序。其被广泛用于开发桌面应用程序、嵌入式系统、移动应用程序等。无论是初学者还是经验丰富的开发者......
  • Qt6 c++教程2 Qt Creator简介
    2QtCreator简介QtCreator是Qt自带的集成开发环境(IDE),用于跨平台应用程序开发。在本章中,您将学习QtCreator集成开发环境的基础知识,并了解集成开发环境的用户界面(UI)。我们还将了解如何在QtCreator中创建和管理项目。本Qt模块包括使用QtCreator开发一个简单的Qt应用程序、......
  • C++基础 -1- 标准输入输出
    ———————标准输入输出——————— ......
  • c++ 什么情况下需要new
    在C++中,new关键字主要用于动态内存分配。以下是一些可能需要使用new的情况:复杂类型:对于复杂类型,如自定义的类类型,通常需要使用new进行动态内存分配。大量内存空间:当你需要大量的内存空间时,比如你需要一个包含10000个int的数组,这时候你就需要使用new。内存大小未知:有时......
  • 【C++ mutable使用】
    什么是mutable关键字?mutable被用于修饰类的成员变量。当一个成员变量被声明为mutable时,它允许在const成员函数内部被修改,即使对象本身是常量。为什么使用mutable?缓存数据:在对象内部维护一个缓存,但不希望影响对象的常量性质时,可以使用mutable来标记缓存变量。记录状态信息......
  • c++ 程序的内存分配
    C++程序在执行时,将内存大致分为以下几个区域:栈:系统自动分配的空间,只要不特殊声明,就定义在栈区,函数的区域也在栈上。栈是向下增长的。(const在栈里)堆:使用动态内存分配的方式可以申请堆空间,用完要手动释放。newmalloc全局区:全局变量、静态变量(static),生命周期是程序整个运行过......