WSL + VS Code で開発環境構築(C/C++/Python etc.)

Linux
スポンサーリンク

初めに

yaibaの記事に対抗すべくサードパーティ製のソフトではなくMicrosoft純正の開発環境を用いて統合的なプログラミング開発環境を築く方法です

今回はC/C++, Python(pyhtonのサンプルは工事中)のプログラミング言語とgit, ssh, script, gdbなどの開発補助ツールの環境を構築し, VS Codeを用いて開発できるようにします

なにが便利なの?

  1. Linux向けにビルドされたソフト(GCC, script, ghc, curl など)がほぼすべて使えるようになる

  2. Linuxのコマンド(シェルスクリプト)が使えるようになる

  3. デュアルブートの必要がなくなる(少し言い過ぎ)

  4. ゲーム(DirectX系)とプログラミングの環境が両立できる <- これがマジで便利

環境構築の流れ

  1. WSLを有効にする

  2. 好きなLinuxディストリビュージョンを入れる(今回はUbuntu)

  3. Linuxの環境を整える

  4. WSLVS Codeをリンクする(Remote Developmentを入れて)

  5. 楽しむ!!!!

インストールしよう!

Windows10の設定

1. 次にPowerShell管理者権限(これ大事)で開き以下のコマンドを入力する

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

2. 再起動を促されるので再起動する

3. Ubuntu 18.04 LTSをインストールする


確認できればWindows10の操作は終了です. この設定をするとOSが不安定になったり, ゲームのベンチが下がったりします(事後報告)

Ubuntuの環境設定

  1. 先程無視したUbuntuのターミナルを開く

  2. 以下の文面が出ている場合待機する

    Installing, this may take a few minutes...
    
  3. Ubuntuusenamepasswordを設定しろと言われるので設定する

    Enter new UNIX username:  <- 名前を入れて
    Enter new UNIX password:  <- パスワード入れて
    Retype new UNIX password: <- パスワード確認したいからもう一度入れて
    
  4. リポジトリ(Ubuntuのソフト群がおいてあるサーバー)を日本サーバーに変更する. パスワードを聞かれるので入力する

    sudo sed -i.bak -e "s%http://archive.ubuntu.com/ubuntu/%http://ftp.iij.ad.jp/pub/linux/ubuntu/archive/%g" /etc/apt/sources.list
    
  5. 付属ソフトの更新情報を取得する. これはアップデート. 途中で止まったらyを入力する

    sudo apt update
    
  6. 付属ソフトを更新する. これはアップグレード. 途中で止まったらyを入力する

    sudo apt upgrade
    
  7. gcc, cmake, clang, gdb, build-essential, gitの C/C++開発に必要最低限のツールを入れる

    sudo apt-get install cmake gcc clang gdb build-essential git
    
  8. CLionを使う人がいるかもしれないので以下のコマンドを実行する(色々設定される)

    wget https://raw.githubusercontent.com/JetBrains/clion-wsl/master/ubuntu_setup_env.sh && bash ubuntu_setup_env.sh
    
  9. CLionのためにsshサーバーの設定をする

    ssh Ubuntuに付けた名前@localhost -p2222
    

CLionの設定がしたければCLionのページを参考にして設定してください. いずれ記事を作ります


Ubuntuの最低限の設定はここまでです

VS Codeを入れる

  1. 公式ページからWindows10向けのexeファイルをダウンロードしインストールする. 途中に出てくるチェックボックスはすべてチェックを入れてはいをおしたほうが今後らくになる

  2. Ctrl+Shift+Xを押して拡張機能を入れるメニューを出す

  3. Japanese Language Packと検索し出てきた拡張パックをインストールし日本語化する

  4. c++もインストールする(これはC/C++の強調表示とかしてくれるやつでコンパイラではないので注意)

  5. pythonもインストールする

  6. Remote DevelopmentもインストールしてWLS2との連携機能を強化する

  7. インストールするだけでVSCodeをカッコよくする拡張も入れておくべき

  8. VS Codeを再起動する


VS Codeの最低限の設定はここまでです

VS Code と WSL をリンクする

  1. Ubuntuの環境設定で開いていたターミナルを開く

  2. そこに以下のコマンドを打つ

code .
  1. VSCodeが起動するまでしばし待つ

  2. 起動とともにターミナルが起動するので以下のコマンドを打ちHi!と表示されるか確認する

echo "Hi!"

リンクの設定はここで終了です

SPONSORD LINK

操作コマンド

Windows側のPowerShellに以下のコマンドを入力し操作していきます. GUIは甘え

コマンドを中途半端に打ってtabキーを押すとコマンドが補完されます. 方向キーで履歴も見れます

WSLの基本コマンド

WSLを起動する

wsl

PowerShellからwslを起動せずにUbuntuのソフトを起動する

wsl コマンド(gccとかlsとか)

# 使用例
wsl gcc hello.c
wsl git init

Windows10 <-> WSL間でパスを変換する

wslpath -u windowsのパス <- WindowsのパスをWLSのパスに変換
wslpath -w wslのパス     <- WSLのパスをWindowsのパスに変換

# 使用例
echo $PWD
$ wslpath -w $PWD

あとはググって

Ubuntuのソフトを管理するコマンド

UNIXコマンドは皆さん知っている前提でUbuntuパッケージ管理のような見慣れないコマンドを解説します

動かなくなった場合, とりあえずyenterを入力しましょう

インストールされているソフトに更新があるか確認する

sudo apt update

インストールされているソフトを更新する

sudo apt upgrade

新たなソフトを公式サーバーから持ってきてインストールする

sudo apt install ソフト名

非公式サーバーを追加する

sudo add-apt-repository -y ppa:ここにサーバーのアドレス

使ってみる

C言語でユークリッドの互除法を実装し最大公約数を求めてみる

  1. VS Codeを起動する

  2. Ctrl + kCtrl + oCソースファイルを置きたいフォルダを開く

  3. Ctrl + nCtrl + Shift + sで新たにファイルを作り, gcd.cというファイル名で保存する

  4. 以下のコードをコピペしてCtrl + sで保存する

#include <stdio.h>

////////////////////////////////////
// ユークリッドの互除法(再帰)
////////////////////////////////////
int gcd(int x, int y) {
    if (y == 0) {
        return x;
    }
    return gcd(y, x % y);
}

////////////////////////////////////
// メイン関数
////////////////////////////////////
int main (){
    // 変数宣言と初期化
    int x = 0;
    int y = 0;

    // 入力処理
    printf("最大公倍数を求めたい x と y を入力してください\n");
    printf("x = ");
    scanf("%d",&x);
    printf("y = ");
    scanf("%d",&y);

    // 計算処理
    int ans = gcd(x, y);

    // 出力処理
    printf("x と y の最大公約数は %d です\n", ans);

    return 0;
}
  1. Ctrl + Shift + @でターミナルを起動する(新しく開く場合はCtrl + Shift + ^)

  2. 以下のコマンドでWSL2を起動する

wsl
  1. 以下コマンドでコンパイルする
# gccにオプションを渡さないと`a.out`/`a.exe`の様に名前が`a`になる

gcc ./gcd.c
  1. 実行してみる
./a.out

最大公倍数を求めたい x と y を入力してください
x = 512
y = 128
x と y の最大公約数は 128 です

この他のサンプルは準備中

参考文献

所感

最後になりますが乱筆乱文失礼しました. この分量の記事なので間違いが含まれている可能性が高いので見つけた場合はコメントで教えていただけるとありがたいです. 見通しを良くするためにいずれ分割します

質問もコメントにいただけるとありがたいです

コメント

タイトルとURLをコピーしました