PCの開発環境を整える(Windows10 WSL)

2020年12月7日

4月のはじめに、ノートPCを新しくする、デスクトップPCのSSDを新しくするといったことを行いました。新しいWindows環境に開発環境のセットアップを行いました。私の環境構築の仕方を、忘備録として書いていきます。




Visual Studioのダウンロード・インストール

visual studio community(以下、vs community)とvisual studio code (以下、vs code) のインストールをしていきますvs communuty を入れる理由は、vs codeのc/c++のプラグインを入れた際に自動で標準ライブラリのhファイルを読み取って補完がかかるようになったり、DXライブラリの開発環境などいろいろなことをできるからです。

vs community には

  • コミュニティ
  • Professional
  • エンタープライズ

の3つがあります。個人で使用する分には、無料で利用できるCommunityを選択すればいいと思います。

 

MicroSoftの公式ページのダウンロードページから、vs community,vscodeの実行ファイルをインストールできます。

まずは、vs community をインストールします。ダウンロードした実行ファイルを実行するとvisual stdio installerが起動すると思います。

インストール選択画面

各自で必要なパッケージをインストールしましょう。私は、C++デスクトップ開発をインストールしました。

 

続いて、vs code をインストールします。実行ファイルの通りに次へを押していけばインストールができます。

vscodeのインストールが終わったら拡張機能の追加から機能を追加していきましょう。

私が追加しているのは、Japanese Language Pack(MicroSoft),C/C++(MicroSoft) ,Python(MicroSoft),LatexWorkshop(James Yu)などです。

追加しているプラグイン

 

Ubuntuのインストールの仕方

WSLを有効にする

bash on ubuntu on windows のインストールから、stm32+makefile,gcc/g++,latexのインストールまで行いたいと思います。
Windows10でC/C++のコンパイルやLatexのコンパイル環境を構築する方法としてMSYS2やMinGWや、TexLiveがありますが、Msys2やCygwinではC言語の場合日本語が化けて表示されてしまうといったことがありました。Latexの場合は必要なパッケージをインストールするのが大変だったということがありました。

また、Windows10上でLinux環境を作る方法としてVM WareやVirtual Boxで仮想環境作るという方法もありますが、パソコンのメモリを多く必要とする、OSを保存しているディレクトリを移動する操作をするとOSが起動しなくなるという事案に遭遇し、データを飛ばしてしまったことがありました。
今回は、GUIはなくてもいいという理由でWSL1とUbuntu(CUI)で環境構築をしていきます。

設定を始めていきます。左下のここに入力して検索というところに"コントロールパネル"と入力してコントロールパネルを開きましょう。

開いたらプログラムをクリックしてください。

コントロールパネル プログラムの画面表示

プログラムと機能の"Windowsの機能の有効化または無効化"をクリックしてください。下の方にスクロールして"Windows Subsystem for linux"をクリックしてください。すると、必要なファイルをインストールした後に再起動を求められます。指示に従って再起動してください。

Windowsの機能

これで、WSLの有効化ができました。

インストール

ここに入力して検索に"Microsoft Store"と入力して、Microsoft Storeを開いて、検索ボックスにUbuntuと入力してください。すると、Ubuntuというアプリが出てくるので入手を押してインストールしましょう。

MicrosoftStore Ubuntu アプリページ

WSLを有効にする前にインストールをすると、インストールに失敗したのでWSLを有効にした後にインストールしてください。WSLを有効可する前にダウンロードをしてしまった場合は一度削除して再インストールしましょう。

セットアップ

ubuntuを起動すると、please wait installingみたいな表示がされると思います。

私の環境では10分から30分程度Instalingの文字が表示されているだけでした。アプリケーションがおかしな動きやフリーズをしているわけではないのでゆっくり待ちましょう。インストールが終わるとユーザー名、パスワードが聞かれます。そのため、ログインに使用するユーザー名、パスワードを決めておくといいと思います。
インストールが終わると、ユーザー名、パスワードの入力が求められます。パスワードの入力時に文字が画面上に表示されませんが、入力はされています。また、パスワードの再確認があるので、間違って入力しても訂正が可能です。

インストール完了後の画面

次に、パッケージの追加をしていきます。

パッケージをインストール

パッケージの更新を行う

まずは、パッケージのアップデート、アップグレードを行います。

次のコマンドを実行しましょう。

sudo apt-get update
sudo apt-get upgrade

updateでアプリをダウンロードして、upgradeで更新をします。パッケージを最新状態に保つようにしたほうがいいので、パッケージをインストールする前や一か月ごとに行うことをお勧めします。ubuntuのインストール時は、パッケージが最新バージョンになっていないので更新しました。

また、sudoはスーパーユーザーとして実行するときに使用するコマンドです。常時スーパーユーザーとして操作を行うことも可能ですが、スーパーユーザーの場合すべてのファイルの書き込みができてしまいます。動作を間違えた場合OSをおかしくしてしまう可能性が出てくるので、安全のために毎回動作実行時にのみスーパーユーザー権限を与えるようにしています。

C/C++のコンパイラを入れる

続いてc/c++の環境は以下のコマンドでインストールができます。

sudo apt-get install build-essential

C/C++のコンパイルに必要なソフトが一つのコマンドでインストールすることが可能です。gcc,g++,makeなどがインストールされます。apt-getではパッケージの依存関係を調べて必要なものをインストールしてくれます。gccだけが入っている場合はまだインストールしていないパッケージのインストールを行ってくれます。

latexを入れる

次にlatexのインストールを行います。latexは、文書作成の際に使うことがあるので入れました。latexの容量が大きいため、インストールには時間がかかります。できるだけ通信環境がいい、時間があるときに行いましょう。

以下のコマンドでインストールが可能です。

sudo apt-get install texlive-lang-cjk
sudo apt-get install texlive-science
sudo apt-get install texlive-latex-extra

または、

sudo apt-get install texlive-full

で行ってください。

texlive-fullはインストールに失敗することがあるので、上記の3つを実行する方がいいと思います。私も一度失敗したことがあります。

続いて、stm32マイコンのコンパイルに使用するgccやtoolchainなどが入ったパッケージをインストールしたいと思います。

STM32のコンパイラを入れる(gcc-arm-embedded)

*2020/6/25にWSL,Ubuntu18.04で試したところ、以下のコマンドではインストールができませんでした。

Ubuntuの公式アーカイブにgcc-arm-none-eabiパッケージはありますが、gcc-arm-none-eabiのパッケージにはツールチェインが入っていなかったためコンパイルを失敗してしまいました。そのため、gcc-arm-none-eabiにツールチェインなどがすべて入ったパッケージを探したところ、PPAにgcc-arm-embeddedが公開されていたのでインストールをすることにしました。
まずは、PPAをapt-getに追加を以下のコマンドで行います。

sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa

途中で一度止まりますが、Enterを押して進めてしまって大丈夫です。apt-getにPPAのgcc-arm-embeddedを追加することができたのでインストールを以下のコマンドで行いましょう。

sudo apt install gcc-arm-embedded

パッケージの確認

パッケージがインストールされているかどうかはwhichコマンドや、パッケージそれぞれのオプションで確認することが可能です。

コマンドの使い方の例は以下の通りです。

which make
/usr/bin/make

また、Windows環境のコマンドプロンプトでbashというコマンドを実行することで、Ubuntuの起動を行うことができます。bashコマンドを使用して起動した場合は、コマンドプロンプトのときのカレントディレクトリで起動が可能です。

Visual Studio Codeのターミナルにbashを設定する

visual studio codeを起動してください。

上のメニューバーのファイル→基本設定→設定で設定画面から設定画面を開いた後に、右上の設定(json)を開くから設定用ファイルを開いてください。

setting.jsonの{}内に以下のテキストを書き込むことでターミナルに設定することができます。

{
  "terminal.integrated.shell.windows": "C:\\Windows\\sysnative\\bash.exe",
}

 

visual codeの実行環境(例)

最後に

Ubuntuのパッケージはたまにupdate,upgradeするようにしましょう!
stm32のコンパイル環境を作ることはWindows上でもできましたが、latexのインストールやC言語プログラムで日本語表示がうまくできないといったことがあったので、WSLを使用してUbuntu上に開発環境を構築しました。
Ubuntuは情報が多くあるので、問題が起きたときに対処がしやすいのではないかということも選定理由の一つです。これで、stm32マイコンでもc/c++のCUIプログラムの両方が、vs codeのターミナルから、コンパイルする、実行することができるようになりました。

  1. Windows Subsystem for Linux