C/C++開発環境がWSL上にあり、エディットをGUI(VSCode)で行う方法
概要
WindowsユーザがLinux環境でC/C++開発したいとき、
以前は仮想マシンを立ち上げてそのうえでLinuxを動かすことが多かったが、
最近はWindows Subsystem for Linux(WSL)上にUbuntu等をインストールしてLinux環境を整えることができるようになった。
このとき、エディタはVim等のCUIではなく、VSCodeなどのGUIで開発したいときは、主に2通りの手段がある。
① Windows上にX Serverを、WSLにはX Clientをインストールして、Windows上にVSCodeのウィンドウを表示させて開発。
② Windows上からWSL上のファイルを直接エディットする。
本記事では②の方法のやり方を述べる。
もちろん、補完機能などもちゃんと動作するようにする。
実行環境
OS: Windows 10
VSCode Ver: 1.24.1
C/C++ for Visual Studio Code Ver: 0.17.5
必要なソフトウェアのインストール
VSCodeのインストール
C/C++の拡張機能をインストール
ワーキングディレクトリを開く
エディットしたいファイルがWSL上にある場合
WSL上のファイルは、
C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
の中にある。
もしかしたら「_79rhkp1fndgsc」の部分が環境によって異なるかもしれないが、読み替えてほしい。
エディットしたいファイルがあるディレクトリにたどり着いたら、そのフォルダをWindows上のVSCodeで開く。
エディットしたいファイルがWindows上にある場合
エディットしたいファイルがあるフォルダをそのままWindows上のVSCodeで開く。
C/C++の拡張機能の設定を変更
ここを参考に設定ファイルを書き換える。
設定ファイルは、Ctrl + Shift + Pでコマンドパレットを開き、「C/Cpp: Edit Configurations...」を選択することで編集できる。
{ "configurations": [ { "name": "WSL", "intelliSenseMode": "clang-x64", "compilerPath": "/usr/bin/gcc", "includePath": [ "${workspaceFolder}", "/usr/local/include", "/usr/include" ], "defines": [], "browse": { "path": [ "${workspaceFolder}" ], "limitSymbolsToIncludedHeaders": true, "databaseFilename": "" }, "cStandard": "c11", "cppStandard": "c++17" } ], "version": 4 }
右下にこのマークが出るはずなのでしばらく待つ。5分経っても変化がない場合は、VSCodeを再起動してみる。
確認
ちゃんとWSL上のインクルードファイルを参照していることがわかる。
コンパイル
Windows上でターミナルを開いて、
$ bash または $ ubuntu -c bash