Windows 10で therecipe/qt を使うまで


1. 前提条件

  • https://github.com/therecipe/qt でGUIなアプリを作るための下準備をする。
  • (Fast track版ではなく)Official版をインストールする。

1-1. PC環境

  • Windows 10 Pro (バージョン1803)
  • Intel Core i5-8250U @ 1.60GHz
  • 8GBメモリ
  • PowerShellを使っていますが、コマンドプロンプトでも同じ
  • HTTP(S)のプロキシサーバーに接続する場合、環境変数 http_proxy, https_proxyを設定しておく。

2. Goのインストール

https://dl.google.com/go/go1.12.windows-amd64.msi
をダウンロード、インストール

  • コントロールパネルの(システム)環境変数で、以下の設定を確認しておく。
変数
GOPATH C:\Users\your-name\go
PATH C:\Go\bin と C:\Users\your-name\go\bin を追加
GOCACHE on
GOROOT C:\Go\
  • Go 1.12 (Windows) では、 GOCACHE が on でないと何かとうまくいかないので注意。
  • Go 1.13 (Windows) では、GOCACHE が C:\Users\your-name\AppData\Local\go-build などとしておく。

3. Qtのインストール

https://download.qt.io/archive/qt/5.12/5.12.0/qt-opensource-windows-x86-5.12.0.exe.mirrorlist
より、5.12.0 版のオフラインインストーラーを入手、インストール。コンポーネントの選択はは以下の通り。Qt ChartsからQt Scriptまではお好みで。(※1)

※1: お好みでと書いておきながら、ビルド時にいちいちLoadModuleできないぞと怒られる(使っていなければ実害はないが)ので、容量に余裕があればQt Charts から Qt Scriptまでを入れておくのが吉のようだ。

4. therecipe/qt のインストールとテスト実行

コマンド プロンプトで、

set GO111MODULE=off
go get -v github.com/therecipe/qt/cmd/... && for /f %v in ('go env GOPATH') do %v\bin\qtsetup test && %v\bin\qtsetup -test=false

を実行。インストールしていないモジュールについては、

time="2019-03-06T18:24:47+09:00" level=error msg="failed to load C:\\Qt\\Qt5.12.0\\Docs\\Qt-5.12.0\\qtscript\\qtscript.index" error="open C:\\Qt\\Qt5.12.0\\Docs\\Qt-5.12.0\\qtscript\\qtscript.index: The system cannot find the path specified."time="2019-03-06T18:24:47+09:00" level=warning msg=parser.LoadModule error=EOF module=Script

のようなエラーが出るが、気にしない。

環境によりますが、私の環境だと40分ほど待ったのちに、

のような、7つのサンプルアプリのテストビルドが成功して完了する。ここまでくれば、とりあえず安心。

  • Qt 5.13ではDeprecatedとなっているQt Scriptもインストールしておいかないと、テスト実行時にエラーとなる。うーむ…。

5. 最終確認

インストールがうまく行っている場合、以下のコマンドでビルドできる。

qtdeploy.exe build windows

その他

  • Windows 10 (1903) / Go 1.13.4 / Qt 5.13 MinGW 版(スタンドアローンインストーラはこちら)の組み合わせでも確認。
  • Qtをバージョンアップしたら、C:\Qt\Qt5.13.0\Tools\mingw730_64 などにPATHを通しておかないとエラーになる。
  • Go 1.12 にアップデートしたら、色々と動かなくなって焦ったので再インストールしてみた次第。ついでに、ハマリどころがあれこれあったのでメモ。
  • コマンドがどこにあるか調べるのに、コマンドプロンプトでは where だが、 PowerShell だと Get-Command(またはgcm)なのでややこしい。
  • インストールがはじまって、qt/sql のところで10分くらい待たされた。qt/purchasingも少し待つ。気長に待つべし。
  • qtdeploy するときに、3 でインストールしなかったモジュールについてはエラーが出る。
  • ビルドするときにはsysoファイルのアーキテクチャも揃えておかないといけない。Qtと同時インストールしたMinGWに含まれるwindres.exeで生成できる。このツールはC:\Qt\Qt5.12.0\Tools\mingw730_64\binにあるのでパスを通しておくと良い。 使い方は、https://qiita.com/zetamatta/items/dd63a2ff4d01fdb6709a に詳しい。