vscode C++

vscode 写C++

官方资料链接
首先你需要有一个编译器,linux中自带了 g++、gcc,windows中你需要下载一个 mingw-w64 编译器

三个重要文件,vscode上写C++也是围绕这三个文件编译、debug

  • task.json
  • launch.json
  • c_cpp_properties.json

1.task.json
当你第一次运行你的程序时,C++扩展会创建tasks.json,你可以在你的项目的.vscode文件夹中找到它。tasks.json存储构建配置。
在这里插入图片描述
你的新tasks.json文件看起来应该类似于下面的JSON。

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

命令设置指定了要运行的程序;在本例中是g++。args数组指定了将被传递给g++的命令行参数。这些参数必须按照编译器所期望的顺序指定。

这个任务告诉 g++ 接收活动文件( f i l e ),对其进行编译,并在当前目录( {file}),对其进行编译,并在当前目录( file),对其进行编译,并在当前目录({fileDirname})下创建一个可执行文件,其名称与活动文件相同,但扩展名为 .exe(${fileBasenameNoExtension}.exe),在我们的例子中产生了 helloworld.exe。

标签值(label value)是你将在任务列表中看到的内容;你可以随心所欲地命名它。

细节值(detail )是你将作为任务列表中任务的描述。强烈建议重命名这个值,以区别于类似的任务。

从现在开始,播放按钮将从tasks.json中读取信息以确定如何构建和运行你的程序。你可以在tasks.json中定义多个编译任务,哪个任务被标记为默认任务,播放按钮就会使用哪个。如果你需要改变默认的编译器,你可以运行Tasks:配置默认构建任务。或者,你可以修改tasks.json文件,通过替换这一段来删除默认任务。

    "group": {
        "kind": "build",
        "isDefault": true
    },

	"group": "build",

你可以通过使用" w o r k s p a c e F o l d e r / ∗ . c p p " 这样的参数而不是 {workspaceFolder}/*.cpp "这样的参数而不是 workspaceFolder/.cpp"这样的参数而不是{file}来修改你的tasks.json,以构建多个C++文件。这将构建当前文件夹中的所有.cpp文件。你也可以修改输出文件名,用一个硬编码的文件名代替"${fileDirname}${fileBasenameNoExtension}.exe"(例如"${workspaceFolder}\myProgram.exe"

2.launch.json

当你用播放按钮或F5进行调试时,C++扩展会即时创建一个动态调试配置.

在有些情况下,你会想定制你的调试配置,比如指定运行时传递给程序的参数。你可以在 launch.json 文件中定义自定义调试配置。

要创建 launch.json,从播放按钮的下拉菜单中选择添加调试配置。

在这里插入图片描述
VS Code创建了一个 launch.json文件,它看起来像这样:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "C/C++: g++.exe build and debug active file",
      "type": "cppdbg",
      "request": "launch",
      "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
      "args": [],
      "stopAtEntry": false,
      "cwd": "${fileDirname}",
      "environment": [],
      "externalConsole": false,
      "MIMode": "gdb",
      "miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: g++.exe build active file"
    }
  ]
}

在上面的JSON中,program指定了你要调试的程序。在这里,它被设置为活动文件文件夹( f i l e D i r n a m e )和带有 . e x e 扩展名的活动文件名( {fileDirname})和带有.exe扩展名的活动文件名( fileDirname)和带有.exe扩展名的活动文件名({fileBasenameNoExtension}.exe),如果helloworld.cpp是活动文件,那么它就是helloworld.exe。args属性是一个参数数组,用于在运行时传递给程序的参数.

默认情况下,C++扩展不会向你的源代码添加任何断点,stopAtEntry值被设置为false。

将stopAtEntry值改为true,使调试器在你开始调试时在main方法上停止。

从现在开始,在启动你的程序进行调试时,播放按钮和F5将从你的launch.json文件中读出。

3.c_cpp_properties.json

如果你想对C/C++扩展进行更多的控制,你可以创建一个c_cpp_properties.json文件,它将允许你改变设置,如编译器的路径、包含路径、C++标准(默认为C++17)等等。

你可以通过运行命令C/C++来查看C/C++的配置UI。编辑配置(用户界面),从命令调板(Ctrl+Shift+P)查看。
在这里插入图片描述
这将打开C/C++配置页面。当你在这里做修改时,VS Code会把它们写到.vscode文件夹中一个叫做c_cpp_properties.json的文件中。

在这里,我们将配置名称改为GCC,将编译器路径下拉设置为g++编译器,并将IntelliSense模式改为与编译器相匹配(gcc-x64)。
在这里插入图片描述
Visual Studio Code将这些设置放在.vscode\c_cpp_properties.json中。如果你直接打开该文件,它看起来应该是这样的。

{
  "configurations": [
    {
      "name": "GCC",
      "includePath": ["${workspaceFolder}/**"],
      "defines": ["_DEBUG", "UNICODE", "_UNICODE"],
      "windowsSdkVersion": "10.0.18362.0",
      "compilerPath": "C:/msys64/mingw64/bin/g++.exe",
      "cStandard": "c17",
      "cppStandard": "c++17",
      "intelliSenseMode": "windows-gcc-x64"
    }
  ],
  "version": 4
}

当你的头文件不在你的工作空间或标准库中时,只需添加 includePath 参数设置。

compilerPath
该扩展使用compilerPath设置来推断C++标准库头文件的路径。当扩展知道在哪里可以找到这些文件时,它就可以提供智能补全和转到定义导航等功能。
C/C++扩展试图根据它在你的系统上发现的情况,用默认的编译器位置填充compilerPath。该扩展在几个常见的编译器位置寻找。

The compilerPath search order is:

  • First check for the Microsoft Visual C++ compiler
  • Then look for g++ on Windows Subsystem for Linux (WSL)
  • Then g++ for Mingw-w64.

如果你安装了Visual Studio或WSL,你可能需要改变compilerPath以匹配你项目的首选编译器。例如,如果你使用i686架构、Win32线程和sjlj异常处理安装选项安装了Mingw-w64版本8.1.0,路径会是这样的。C:\Program Files (x86)\mingw-w64\i686-8.1.0-win32-sjlj-rt_v6-rev0\mingw64\bin\g++.exe

VSCode是一款轻量级的代码编辑器,可以用于编写各种编程语言的代码,包括C++。要在VSCode中配置C++环境,可以按照以下步骤进行操作。 首先,你需要下载并安装VSCode和MinGW编译器。安装完成后,打开VSCode并进入你要进行C++编程的文件夹。 接下来,你可以选择两种方式打开工程文件夹。一种是在终端中进入目录后输入"code ."命令,另一种是先打开VSCode,然后选择"打开文件夹"并选择你的工程文件夹。 在工程文件夹中新建一个hello.cpp文件,并写入以下代码: #include <iostream> using namespace std; int main() { cout << "hello world!" << endl; cout << "你好 世界!" << endl; return 0; } 接下来,你需要进行一些配置。按下快捷键Ctrl+Shift+P,调出命令面板,输入"C/C++"并选择"Edit Configurations(UI)"进入配置界面。 在配置界面中,你需要设置编译器路径。选择MinGW安装路径下的/bin/g++.exe作为编译器路径。 另外,你还可以选择IntelliSense模式为gcc-x64。 完成以上配置后,你就可以在VSCode中使用C++进行编程了。你可以保存并编译你的代码,然后在终端中运行生成的可执行文件。 希望以上信息对你有帮助!\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [C++学习之工具篇 二:VSCode C++环境配置(Ubuntu篇)](https://blog.csdn.net/weixin_43180456/article/details/129847004)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [C++学习之工具篇 一:VSCode C++环境配置(Windows篇)](https://blog.csdn.net/weixin_43180456/article/details/126374156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值