在Windows10下在WSL中使用visual studio code


介紹

VS code 很好用。
WSL很好。
所以兩者結合起開使用爽歪歪。
在Windows上模擬Linux進行編譯的方式有幾種

1、安裝MinGW,使用gcc或者g++進行編譯

2、使用Windows連接WSL進行編譯

本文介紹第二種
注意:Linux下的項目,在Windows上編譯操作,1,2兩種方案都是很好的.
要是想保持開發環境與生產環境一致,可以使用第二種.第一種可能使用的g++版本不一致.

目標

在Windows下使用vs code編輯Ubuntu下的代碼,讓其在Ubuntu下編譯執行。

准備

window上開啟Linux子系統

使用Ubuntu,配置清華大學的源--->這一步是為了加速安裝軟件.不懂的百度或者留言.
過程略

Windows上安裝vs code

過程略,
插件的安裝方式自行百度.
通過插件可以更改軟件為中文.

操作

根據官網的方式

1、在Linux子系統上找個目錄,然后執行code .

這個命令是可以通過WSL打開Windows下的vs code編輯器

安裝插件

Ctrl+shift+p打開安裝插件的搜索條
c/c++
remote-wsl
c++Intellisence
安裝插件的時候注意:
需要在WSL中再次安裝,雙擊插件名字旁邊的在wsl中安裝即可安裝.
需要在WSL中安裝g++ gcc---->自行百度解決

2、新建一個hello.cpp文件

里面寫上C++輸出hello world的代碼

#include <iostream>
#include <vector>
#include <string>
using namespace std;

int main()
{
    vector<string> msg{"hello world", "你好"};

    for (const string &word : msg)
    {
        /* code */
        cout << word << " ";
    }
    cout << endl;
}

配置

這三個文件是通過設置自動生成的.
在你當前的目錄下會生成一個.vscode的目錄,這個目錄里存放着三個文件.
這三個文件是控制着這個工程如何運作的.
配置完這三個文件就可以運行代碼了.

c_cpp_properties.json (編譯器路徑和IntelliSense設置)
tasks.json (任務執行)
launch.json (調試器設置)

tasks.json

tasks.json文件來告訴VS Code如何構建(編譯)程序
從主菜單中,選擇Terminal > Configure Default Build Task。在下拉列表中,將顯示任務下拉列表,其中列出了C ++編譯器的各種預定義構建任務。選擇g ++ build active file,它將構建當前在編輯器中顯示(活動)的文件。
生成一個模板文件如下:
這里沒啥要修改的.
參數說明:
command設置指定要運行的程序;在這種情況下是g ++。
args數組指定將傳遞給g ++的命令行參數。必須按照編譯器期望的順序指定這些參數。
此任務告訴g ++獲取活動文件(${file}),對其進行編譯,然后在當前目錄(${fileDirname})中創建一個與活動文件同名但沒有擴展名(${fileBasenameNoExtension})的可執行文件.
label值就是您將在任務列表中看到的值;您可以隨意命名。這個label就是在構建的時候出現在vscode編輯器輸出內容的窗口的名字.你可以用中文
要運行中定義的構建任務tasks.json,請按Ctrl + Shift + B或從終端主菜單中選擇“ 任務:運行構建任務”。就可以執行了.
要是想運行多個CPP文件:您可以tasks.json使用"*.cpp"代替的參數來修改以構建多個C ++文件${file}。您也可以通過替換"${fileDirname}/${fileBasenameNoExtension}"

{
  "version": "2.0.0",
  "tasks": [
    {
      "type": "shell",
      "label": "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
      }
    }
  ]
}

launch.json

接下來,您將創建一個launch.json文件來配置VS Code,以在您按F5調試程序時啟動GDB調試器。
從主菜單中,選擇“ 調試” >“ 添加配置...”,然后選擇“ C ++(GDB / LLDB)”。
VS Code創建一個launch.json文件,在編輯器中將其打開,然后生成並運行“ helloworld”。
參數說明
program設置指定要調試的程序。在這里,它被設置為活動文件文件夾${fileDirname}和活動文件名,不帶擴展名${fileBasenameNoExtension},如果helloworld.cpp是,則為活動文件helloworld。
默認情況下,C ++擴展不會在您的源代碼中添加任何斷點,並且其stopAtEntry值設置為false。將stopAtEntry值更改true為會導致調試器main在啟動調試時在該方法上停止。(一般設置為false,如果是true則會在main的位置產生斷點)

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

c_cpp_properties.json

如果要對C / C ++擴展進行更多控制,則可以創建一個c_cpp_properties.json文件,該文件將允許您更改設置,例如編譯器的路徑,包含路徑,C ++標准(默認為C ++ 17)等。
您可以通過運行命令C / C ++:從命令面板(Ctrl + Shift + P)編輯配置(UI)來查看C / C ++配置UI 。
這將打開“ C / C ++配置”頁面。當您在此處進行更改時,VS Code會將其寫入到文件夾中稱為c_cpp_properties.json的.vscode文件中。
僅當程序包含不在工作空間或標准庫路徑中的頭文件時,才需要修改“ 包含路徑”設置。
配置的json內容如下:

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

通過以上的設置,你就可以在Windows上使用vscode操作WSL里面的工程了.

總結

這么做好像有點脫褲子放屁.
但是可以在vscode安裝vim插件,在vscode中使用vim了啊
哈哈哈哈
注意:下面的參考鏈接就是官網的.看圖的話參考官網.

參考
https://code.visualstudio.com/docs/cpp/config-wsl


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM