Windows Subsystem for LinuxでQt開発環境を作ってみる

WSLことWindows Subsystem for LinuxではWindows 10でLinuxバイナリを実行させることができます。GUIをリモート描画するX Serverを利用すれば、Linux GUIベースのQtアプリもWindowsマシンで開発・デバッグすることができるようになります。ただし、WSL1では、ハードウェアを制御するようなプログラムの開発はできません。

まずはコントロールパネルの「プログラムと機能」の「Windows機能の有効化」より「Windows Subsystem for Linux」をインストールし、マイクロソフトストアよりLinuxディストリビューションをインストールします。今回の解説ではDebianを導入しています。これ以外のディストリビューションではインストールする必要のあるパッケージが異なる可能性があります。
Debianを起動したら、まずはパッケージをダウンロードするために必要なネットワークアプリを導入します。
sudo apt update sudo apt install wget
GUIおよび開発ツール、デバッガーをインストールします。
sudo apt install dbus sudo apt install x11-apps sudo apt install libxkbcommon-x11-0 sudo apt install libx11-xcb-dev sudo apt install libglu1-mesa-dev -y sudo apt install libglib2.0-0 sudo apt install libfontconfig1 sudo apt install build-essential sudo apt install clang sudo apt install gdb
GUIをリモート表示するためのX Server(VcXsrv)をWindows側にインストールします。

XLaunch.exeを起動すると設定画面が表示されます。基本的に初期設定のままでかまいませんが、nVidia(GeForce)のグラフィックカードを利用している場合、OpenGL関連のエラーが発生することがあるので、そのような場合は「Native opengl」のチェックを外しましょう。
Debianの「~/.bashrc」をテキストエディタなどで開き、最後の行に「export DISPLAY=:0.0」の一文を追加することで、X Serverの接続先を定義します。上書き保存したら、Debianを再起動させましょう。
Qtのパッケージをダウンロードし、実行権限を与えてアプリを実行させます。ここではLTSの5.12.4を指定していますが、必要に応じてこのバージョン数値は変更してください。
wget //download.qt.io/official_releases/qt/5.12/5.12.4/qt-opensource-linux-x64-5.12.4.run chmod +x qt-opensource-linux-x64-5.12.4.run ./qt-opensource-linux-x64-5.12.4.run
関連ライブラリーが正しく導入されていれば、インストーラーが起動するので、あとはLinux上と同じように手続きを踏んでいきます。

QtCreatorを起動するにはコンソールで「~/(Qtのインストール先)/Tools/QtCreator/bin/qtcreator」と入力します。
ちなみにWindowsにあるファイルをWSLで使用するには、cpコマンドでファイルを移動させておく必要があります。
cp -r /mnt/c/src/ /home/dst/
逆にWSLからWindowsへファイルを移動させたい場合はDebianで以下のコマンドを実行してエクスプローラーにマウントさせます(Windows 10 May 2019 Update以降)。
explorer.exe .
2019/08/29