首页 > 编程语言 >使用VS Code和WSL开发C/C++的简单配置

使用VS Code和WSL开发C/C++的简单配置

时间:2024-04-24 16:12:12浏览次数:17  
标签:Code VSCode 配置 WSL C++ json

使用VS Code和WSL开发C/C++的简单配置

目录

使用情形

The Windows Subsystem for Linux 适用于Linux的Windows子系统(简称WSL)可以允许开发者安装需要的Linux发行版,并且能够安装其中的大部分应用程序直接调用。开发者无需安装额外的虚拟机或者设置双系统,还可以同时享受Linux强大的软件生态和Windows便利的图形化界面。

本文主要介绍基于VSCode远程连接WSL进行C/C++开发时,对于调试功能的配置。

VSCode Debug简要介绍

VSCode的调试功能和传统IDE基本一致。不同之处在于VSCode本身不包括编译器和调试器。它的图形化界面是通过调用环境中的编译器和调试器来进行编译和调试的。对于C/C++来说,常用的工具链主要有GNU、llvm两大类,VSCode都提供了相应的支持。

扩展插件选择了微软提供的C/C++插件,VSCode插件市场中搜索或者从官方链接下载都可以

ps. llvm工具链与此插件在WSL中有BUG,因此建议使用GNU。llvm工具链可以按照这篇文章指引进行配置 几乎无痛的VSCode+clangd+lldb+cmake配置C/C++开发环境指南

对于Ubuntu,GNU工具链安装如下。

sudo apt-get update
sudo apt-get install build-essential gdb

在你工作目录下调用.code指令就可以用VSCode打开当前文件夹

cd ~/projects/helloworld
code .

首次打开,VSCode会显示一条信息“Installing VS Code Server”,这说明VSCode正在WSL中下载一个小型服务器应用,用于桌面端和WSL进行通讯。下载完成后,VSCode会打开对应的文件夹,即工作空间(workspace),这里是helloworld。并在左下角状态栏里显示"WSL:Ubuntu"。如果下载失败,也可以进入VSCode市场搜索WSL下载

后续你就可以在左侧远程资源管理器或者最近打开的文件中再次打开文件夹。其他操作就不再赘述,可以自行进行探索。

后续步骤将会在项目目录下生成.vscode文件夹,并在其中生成三个文件,功能如下:

  • c_cpp_properties.json 编译器路径和智能提示设置
  • task.json 构建说明
  • launch.json 调试器设置

由于微软文档写的非常详细,感觉没什么写的必要了,后续只贴参数和链接了

task配置

task.json

{
    "version": "2.0.0",
  "tasks": [
      {
          "type": "shell",
      "label": "C/C++: g++ build active file",
      "command": "/usr/bin/g++",
      "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}"],
      "options": {
          "cwd": "/usr/bin"
      },
      "problemMatcher": ["$gcc"],
      "group": {
          "kind": "build",
        "isDefault": true
      },
      "detail": "Task generated by Debugger."
    }
  ]
}

ps. 各个参数含义请看微软文档

launch配置

launch.json

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

ps. 各个参数含义请看微软文档

C/C++ 配置

c_cpp_properties.json

{
  "configurations": [
    {
      "name": "Linux",
      "includePath": ["${workspaceFolder}/**"],
      "defines": [],
      "compilerPath": "/usr/bin/gcc",
      "cStandard": "c11",
      "cppStandard": "c++17",
      "intelliSenseMode": "clang-x64"
    }
  ],
  "version": 4
}

参考来源

[1] Using C++ and WSL in VS Code: https://code.visualstudio.com/docs/cpp/config-wsl

[2] Variables Reference: https://code.visualstudio.com/docs/editor/variables-reference;

[3] 几乎无痛的VSCode+clangd+lldb+cmake配置C/C++开发环境指南: https://zhuanlan.zhihu.com/p/566365173

标签:Code,VSCode,配置,WSL,C++,json
From: https://www.cnblogs.com/xsuns/p/18155685

相关文章

  • 解决安装 ollama 在 wsl2 中报 WARNING: No NVIDIA/AMD GPU detected. Ollama will ru
    首先要确保wsl2版的cuda环境已经安装[非必须]如果已安装了环境但是nvidia-smi找不到,可能是未加入环境变量,请将它的路径/usr/lib/wsl/lib加入PATHollama在/usr/bin/找不到nvidia-smi位置,所以会有如上警告,所以需要创个链接指向:方法一:sudoln-s$(whichnvid......
  • VS Code如何创建HTML文件并运行(新手友好)
    一、下载VSCode首先从官网https://code.visualstudio.com/下载VSCode。二、在VSCode中下载相关的插件1、首先打开VisualStudioCode 2、点击左侧工具栏中“扩展”栏,也可使用扩展快捷键打开(Ctrl+Shift+X),打开扩展下载以下三个插件。(三个插件安装完成后都需要重启VSCod......
  • C++ 指针变量的字面量以及其所指对象的字面量
    指针变量的字面量以及其所指对象的字面量 #include<iostream>usingnamespacestd;intmain(){intvar=20;int*var_address;var_address=&var;cout<<"Valueofvarvariavle:"<<var<<endl;//Valueofvarvari......
  • C++ 指针变量的字面量以及其所指对象的字面量
    指针变量的字面量以及其所指对象的字面量 #include<iostream>usingnamespacestd;intmain(){intvar=20;int*var_address;var_address=&var;cout<<"Valueofvarvariavle:"<<var<<endl;//Valueofvarvari......
  • c++
     如何验证gcc正常使用,编译c以及运行过程要验证GCC(GNUCompilerCollection)是否正常使用,您可以按照以下步骤进行操作:检查GCC是否安装:打开终端或命令行界面,输入以下命令来检查GCC是否已安装:gcc--version 如果GCC已正确安装,您将看到GCC的版本信息。如果没有安装,您......
  • C++ 指针变量的字面量以及其所指对象的字面量
    指针变量的字面量以及其所指对象的字面量 #include<iostream>usingnamespacestd;intmain(){intvar=20;int*var_address;var_address=&var;cout<<"Valueofvarvariavle:"<<var<<endl;//Valueofvarvari......
  • 为什么自动驾驶领域发论文都是用强化学习算法,但是实际公司里却没有一家使用强化学习算
    为什么自动驾驶领域发论文都是用强化学习算法,但是实际公司里却没有一家使用强化学习算法?——(特斯拉今年年初宣布推出实际上第一款纯端到端的自动驾驶系统,全部使用强化算法,替换掉原有的30万行C++的rule-based代码)给出一个自己比较认可的答案:https://www.zhihu.com/question/54......
  • C++ 指针变量的字面量以及其所指对象的字面量
     指针变量的字面量以及其所指对象的字面量 #include<iostream>usingnamespacestd;intmain(){intvar=20;int*var_address;var_address=&var;cout<<"Valueofvarvariavle:"<<var<<endl;//Valueofvarv......
  • 深度解读《深度探索C++对象模型》之C++虚函数实现分析(二)
    接下来我将持续更新“深度解读《深度探索C++对象模型》”系列,敬请期待,欢迎关注!也可以关注公众号:iShare爱分享,自动获得推文和全部的文章列表。第一篇请从这里阅读:深度解读《深度探索C++对象模型》之C++虚函数实现分析(一)这一篇主要讲解多重继承情况下的虚函数实现分析。在多重......
  • vscode 提示导入的第三方包 路径不正确 ,要怎么解决?
    问题:vscode提示导入的第三方包路径不正确,如:import{Modal}from"node_modules/antd/lib/index";应该是import{Modal}from"antd";要怎么解决?回答要让VSCode在自动导入时不使用node_modules的完整路径,可按以下步骤操作:打开VSCode进入设置页面,你可以通过顶部菜......