Windows10上でC/C++のプログラムをコンパイルできる日本語の環境を作ります。
所要時間は環境にもよりますが30分から1時間です。
- Windows10
- Visual Studio Code
- Ubuntu (Windows Subsystem for Linux, WSL)
キーボード操作は Windows のように表記します。
Windows + R のようにプラス記号が現れた場合は、左から順にキーを押さえながら全てのキーを同時入力してください。
WSLの有効化
Windows + R で ファイル名を指定して実行 を開き、以下のように入力して Ctrl + Shift + Enter します。
DISM イメージ サービス ユーティリティが起動してLinux用Windowsサブシステム
を有効化します。
dism /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
〈省略可能〉WSL2の有効化
Windows10の更新状況によっては、より高速に動作するWSL2を利用できます。
必要条件から、WSL2に必要なバージョンを確認します。
プロセッサの種類 バージョン ビルド x64
1903
以降18362
以上ARM
2004
以降19041
以上(表は2020年11月16日確認時の物)
プロセッサの種類の確認
Windows + R で ファイル名を指定して実行 を開き、 ms-settings:about
と入力して Enter します。
バージョン情報が表示されるので、デバイスの仕様中のシステムの種類を確認します。
- x64 ベース プロセッサ → x64
- ARM ベース プロセッサ → ARM
バージョンとビルドの確認
同じように Windows + R でファイル名を指定して実行を開き、今度は winver
と入力して Enter します。
バージョンとビルドが表示されます。
バージョンとビルドが条件を満たしていたら、WSL2を有効化するために追加で以下の3つの節を行います。
– 仮想マシンプラットフォームの有効化
– 追加の更新プログラムの適用
– WSLの既定バージョンの設定
仮想マシンプラットフォームの有効化
Windows + R で ファイル名を指定して実行 を開き、以下のように入力して Ctrl + Shift + Enter して、 仮想マシンプラットフォーム
を有効化します。
dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
追加の更新プログラムの適用
WSL用の最新の更新プログラムを以下からダウンロードして実行してください。
x64
: wsl_update_x64.msiARM
: wsl_update_arm64.msi
実行すると自動で更新が適用され完了します。
WSLの既定バージョンの設定
Windows + R で ファイル名を指定して実行 を開き、 powershell
と入力して Enter します。
PowerShellで以下のコマンドを実行して、WSLの既定のバージョンを 2
に設定します。
PS > wsl --set-default-version 2
再起動
これまで行った設定を反映させるため、パソコンを再起動します。
Ubuntu (Windows Subsystem for Linux)のインストール
WSL版のUbuntuをWindows10にインストールします。
Microsoft StoreからUbuntuをインストール
画面左下のスタートボタンから、Microsoft Storeを起動します。
スタートメニューを開いたらそのままStoreと入力すると簡単に見つかります。
右上の検索からUbuntuを検索して、一番上に出て来た物をクリックします。
入手をクリックします。
ダウンロードが終了するまで暫く待ちます。
ダウンロードが終わると「この製品はインストール済みです。」と表示されます。
Ubuntuのセットアップ
先ほどストアを開いたのと同じようにUbuntuを起動します。
起動すると、Installing, this may take a few minutes...
と白文字で表示された黒い画面が出るので暫く待ちます。
暫くするとUbuntuのユーザー名とパスワードを入力する表示になります。
ユーザー名は英数字列で自由に決めて良いです。例ではubuntu
にしました。
パスワードは入力しても表示されないので、間違えないように入力します。
Enter new UNIX username: ubuntu
New password: (パスワードを入力)
Retype new password: (もう一度同じパスワードを入力)
入力したら、緑文字で先ほど入力したユーザー名と、Ubuntuを実行しているPCの名前が表示されて、コマンド実行が可能な状態になります。
Ubuntuの更新とパッケージのインストール
コマンドを実行する事で、Ubuntuの更新と必要なパッケージのインストールを行います。
暫く時間が掛かります。
build-essential
: C/C++のコンパイルに必要なパッケージlanguage-pack-ja
: 日本語の言語パックibus-mozc
: 日本語入力パッケージ
# 以降をコピーして貼り付けて実行 sudo apt update && sudo apt upgrade -y && sudo apt install -y build-essential language-pack-ja ibus-mozc
# 管理者として実行するためパスワードを入力
[sudo] password for ubuntu: (パスワードを入力)
完了すると再び緑文字が現れてコマンド実行可能な状態になります。
次は、日本語をデフォルトの言語にするためのコマンドを実行します。
# 以降をコピーして貼り付けて実行 sudo update-locale LANG=ja_JP.UTF8
# 前回の管理者実行から時間が経っているとパスワード入力が必要
[sudo] password for ubuntu: (パスワードを入力)
これでUbuntuのセットアップは完了です。
Visual Studio Codeのインストール
このページから、Windows向けのSystem Installer 64bitをダウンロードして実行します。
Visual Studio Codeのインストーラが起動するので、画面に従って進めて行きます。
ライセンスに同意して次へ進みます。
デフォルトのまま次へ進みます。
デフォルトのまま次へ進みます。
以下の3つにチェックを入れて次へ進みます。
- デスクトップ上にアイコンを作成する(D)
- サポートされているファイルの種類のエディターとして、Codeを登録する
- PATHへの追加(再起動後に使用可能)
内容を確認してインストールします。
「Visual Studio Codeを実行する」にチェックを入れて完了します。
Visual Studio Codeの日本語化
まずはVisual Studio Codeを日本語化します。
ウィンドウ左のExtensionsのアイコンをクリックして、Japanese
と検索して、Japanese Language Pack for Visual Studio CodeのInstallボタンを押してインストールします。
インストールが終わったら再起動して、日本語化が完了した事を確認します。
Visual Studio Codeへの拡張機能の追加
次に、Ubuntu (Windows Subsystem for Linux)を利用するために必要な拡張機能を追加します。
日本語化と同じ要領で、Remote Developmentをインストールしてください。
インストールが終わったら、ウィンドウ左にリモートエクスプローラーのアイコンが追加されるので、それをクリックします。
リモートエクスプローラーと書いてある横のリストボックスからWSL Targetsを選んで、先ほどインストールしたUbuntuが表示されている事を確認します。
VSCode上でUbuntuを開く
Ubuntu default distroと書いてある右にあるアイコンをクリックします。
新たなウィンドウが開かれるので、左下にWSL: Ubuntuと表示されている事を確認します。
このウィンドウ上でC/C++の拡張機能を追加します。
これでVSCodeとWSLでC/C++のコンパイルを行う準備ができました。
ソースコードを書く
テストとして、Hello, World!
プログラムのソースコードを書きます。
Ctrl + N
で新規ファイルを開きます。
ウィンドウ上部のファイル -> 新規ファイル
でも開く事ができます。
以下の内容を開かれたファイルに入力します。
#include <stdio.h>
int main(void)
{
printf("Hello, World!\n");
}
Ctrl + S
でファイルを/home/ubuntu/hello.c
として保存します。
ウィンドウ上部のファイル -> 保存
でも保存できます。
コンパイルする
先ほど書いたソースコードをコンパイルします。
ウィンドウ上部のターミナル -> 新しいターミナル
からターミナルを開きます。
このターミナルで以下のようにコマンドを実行して、ソースコードのコンパイルから実行までを行います。
# コンパイル
gcc hello.c
# 実行 ./a.out
ディレクトリを開く
先ほどはユーザーのホームディレクトリにソースコードを保存しましたが、
一般的にプロジェクトや講義ごとにディレクトリを分けた方が管理がしやすいです。
そして、Visual Studio Codeでそのディレクトリを開けば更に利便性が上がります。
例として、ディレクトリ~/lecture/
を作って、先ほどのhello.c
を移動します。
# ディレクトリの作成
mkdir ~/lecture
# a.outの削除 rm a.out
# hello.cの移動
$ mv ~/hello.c ~/lecture/
「ようこそ」ページの「開始」の下にある「フォルダーを開く…」から、先ほど作成したディレクトリ~/lecture
を開きます。
ファイル -> フォルダーを開く...
からも開けます。
ディレクトリを開くと、ウィンドウ左側のファイルマネージャにディレクトリ内のファイルが表示されます。
また、ターミナルを開いたら、自動的にカレントディレクトリがそのディレクトリに自動で移動します。
FAQ
手順通りに行ったのに正常に動作しない場合は以下を読んでください。
Ubuntuを起動してもユーザー設定が表示されない
Ubuntuの初回起動時に以下のように表示される場合です。
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0xXXXXXXXX
Error: 0xXXXXXXXX The parameter is incorrect.
Press any key to continue...
WSL1(もしくはWSL2)の実行に必要なWindowsの機能が有効化されていません。
- 手順を再確認してください。
- 変更の適用には再起動が必要です。
手順については以下の節を確認してください。
- WSLの有効化
- 仮想マシンプラットフォームの有効化 (WSL2)
- 追加の更新プログラムの適用 (WSL2)
- WSLの既定バージョンの設定 (WSL2)
gcc
やmake
が使えない
Ubuntuにbuild-essential
パッケージをインストールしていない事が原因です。
Ubuntuの更新とパッケージのインストール を再度確認してください。