Windows 上の Vscode で Windows Sublinuxsystem の gcc を使用する

Windows 上の Vscode で Windows Sublinuxsystem の gcc を使用する

Windows Fall Creators Update以降、UbuntuのようなLinuxサブシステムをウィンドウズストアWindows マシン上で。

Windows 上の Linux サブシステムの gcc コンパイラを使用して、Windows 上の vscode で Linux 用の C アプリケーションをビルドすることは可能ですか?

答え1

ビジュアルスタジオコードは、プロジェクトをコンパイルする方法 (およびその他のタスクを実行する方法) を記述するファイルを使用するクロスプラットフォーム IDE ですtasks.json。VSCode は、Windows または WSL Ubuntu サブシステムで実行できます。WSL で実行する場合は、Ubuntu/Linux バイナリを使用する必要があります。


WSLに関するメモ

Windowsのコマンドラインでは、Linuxコマンドを実行するにはbash

C:\> bash.exe -c <linux command>

例えば、Linuxを実行するgccには

C:\> bash -c "gcc -v"

インストールした場合WSL 上の複数の Linux システムたとえば、opensuse と ubuntu の場合、Windows コマンド ラインでどの Linux サブシステムが使用されているかを判断するにはopensuse-42 runubuntu runの代わりにまたは を使用する必要があります。bash

C:\> ipconfig | opensuse-42 run grep IP | ubuntu run lolcat

さらに、Windowsファイルシステムは を使用してアクセスできることに注意してください/mnt/<drive letter>/。たとえば、フォルダーがある場合C:\Projects、Linuxから次のようにアクセスできます。/mnt/C/Projects


WSL Linux で GCC を使用するために Windows で VSCode を構成する

チェックしてくださいウェブサイトの指示bashMac または Linux で GCC または CLang コンパイラを使用するには、タスクに応じて異なる引数を使用して を使用できます。

独自の を構成 (または作成) できますtask.jsonbashを使用するコマンドとして を定義する必要があります。 Mac/Linux で使用するのとほぼ同じ構成で動作するはずです。 「cwd」オプションを変更しました。

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "0.1.0",
    "wsl": {
        "command": "bash",
        "args": ["-c"],
        "isShellCommand": true,
        "showOutput": "always",
        "suppressTaskName": true,
        "options": {
            "cwd": "/mnt/C/${workspaceRoot}"
         },
        "tasks": [
             {
                "taskName": "hello",
                "args": [
                    "make hello"
                ],
                "isBuildCommand": true
             },
             {
                "taskName": "clean",
                "args": [
                    "make clean"
                ]
             },
             {
                "taskName": "compile w/o makefile",
                "args": [
                    "g++ helloworld.C -o hello"
                ],
                "echoCommand": true
            }
        ]
    }
}

他にもいくつかあります要点他の例としても使用できます。

注記:私はいくつかのMSチュートリアルを見つけましたWSL と Visual Studio を使用して Linux GCC プログラムをコンパイルおよびデバッグするただし、Visual Studio Code ではありません。

関連情報