はじめに
最近、C++を書く必要が出てきました。
本番環境はLinuxです。
でも、私が使っているPCはWindows。
だったらWindowsで書けばいいじゃないか、と思いますよね。
でも、本番がLinuxなら、開発環境もLinuxに近づけたくなります。
Windowsでしか動かないコードをうっかり書いてしまうのを避けたいからです。
そこで使うのがWSLです。
WSLは、Windows上でLinuxを動かせる仕組みです。
これでLinux環境が手に入りました。
……と思ったら、次の問題があります。
WSLはCLIです。
黒い画面でコマンドを入力するあれです。
まさかCLIでコードを書くわけにはいきません。
じゃあ、どうするのか。
実は、VS Codeと連携できます。
エディタはいつものVS Code。
実行環境だけがWSL。
つまり、普段と変わらない感覚でLinux上のプログラムを書けます。
WSLをインストールする
まずはWSLをインストールします。
PowerShellを管理者権限で開き、次を実行します。
wsl --install
インストールが終わったら、PCを再起動します。
次にUbuntuをインストールします。
wsl --install -d Ubuntu
途中でユーザー名とパスワードを聞かれます。
どちらも自由に決めて大丈夫です。
途中で次のようなメッセージも表示されます。
Would you like to opt-in to platform metrics collection (Y/n)?
私は n を選びました。
これでWSLの準備は完了です。
次回からはスタートメニューからWSLを起動できます。
VS Codeと連携する
ここが今回の本題です。
VS Codeで「WSL」という拡張機能をインストールします。
そのあと、WSLで適当なディレクトリを作ります。
mkdir ~/cpp-test
cd ~/cpp-test
そして、次を実行します。
code .
すると、VS Codeが起動します。
見た目は、いつものVS Codeです。
普通にファイルを作れます。
普通に編集できます。
でも、実際に編集しているのはWSL上のファイルです。
つまり、
- エディタはGUI
- 実行環境はLinux
という状態になります。
CLIでコードを書く必要はありません。
C++環境を入れる
パッケージ情報を更新します。
sudo apt update
続いてGCC(コンパイラ)をインストールします。
sudo apt install build-essential
これでC++を動かせるようになります。
Hello, World!を動かす
main.cpp を作ります
#include <iostream>
int main() {
std::cout << "Hello, World!\n";
}
せっかくなので、VS Codeのターミナルを開きます。
ショートカットは
Ctrl + J
です。
WSLのターミナルが開いていることを確認したら、コンパイルします。
g++ main.cpp -o main
実行します。
./main
結果はこちらです。
Hello, World!
ちゃんとWSL上でコンパイルと実行ができました。
でも、コードを書いていたのはいつものVS Codeです。
違和感なく開発できます。
まとめ
WSLはCLIだけではありません。
VS Codeと連携すれば、いつもどおりGUIでコードを書きながら、Linux環境で開発できます。