Go言語でQtを扱ってみる on UbuntuでUbuntuでGo言語とQtの開発環境を用意した。
続いて、Windows10でもGo言語とQtの開発環境を用意してみる。
環境
ASUS TransBook T304U
OS : Windows10 64bit
Go言語:1.11 linux/amd64
Qt:5.11.1
端末はgit bashを利用しているので、新規でMSYS2をインストールせず、git bashを使用する方向で話を進めます。
git bashは下記の記事に記載されている手順で拡張済みです。
最初にGo言語を最新版にするが、それは省略
続いて、Qtのインストールを行う。
Qt公式のインストーラも試したが、MSYS2のパッケージマネージャ(pacman)を利用した方が格段に楽だったので、
今回はMSYS2の方で話を進める。
インストールの手順は下記のページを参考にした。
Installation on Windows · therecipe/qt Wiki · GitHub
最初に使用しているMSYS2のディレクトリを環境変数として登録しておく。
環境変数を登録する手順は
画面左下にあるcortana検索で「環境変数」で検索すると結果にあがるシステム環境変数の編集を選択し、
システムのプロパティの画面で環境変数のボタンを押す。
環境変数の画面が表示されたら、新規ボタンを押して、QT_MSYS2_DIRを登録する。
拡張したgit bash(MSYS2)のパスはC:\git-sdk-63になる。
環境変数の登録が終了したら、
拡張したgit bash(起動のアイコンはMSYS2)を立ち上げ、
下記のコマンドを実行
$ QT_MSYS2=true $ QT_MSYS2_ARCH=amd64 $ pacman -Syyu $ pacman -S mingw-w64-x86_64-qt-creator mingw-w64-x86_64-qt5 $ pacman -Scc
インストールは30分程かかる。
インストールが終了したらGo言語の方のパッケージの取得とセットアップを行う。
$ go get -v github.com/therecipe/qt/cmd/... $ qtsetup # Goのパスを通していなければ下記を実行 # $ %GOPATH%\bin\qtsetup.exe
これでGo言語側のQtの設定は終了。
Qtが使用できるかの確認のためにサンプルコードを実行してみる。
サンプルコードを実行する為に下記のコマンドを実行する。
$ go get -d -v github.com/therecipe/examples/... $ cd $GOPATH/src/github.com/therecipe/examples $ qtdeploy test desktop ./basic/qml
デプロイ時にウィンドウが立ち上がりつつ、下記のエラーが発生する。
time="2018-09-11T07:08:29+09:00" level=error msg="failed to run command" cmd="cp C:\\git-sdk-64\\mingw64\\bin\\libicudt61.dll C:\\Users\\ryoko\\go\\src\\github.com\\therecipe\\examples\\basic\\qml\\deploy\\windows" dir= env= error="exit status 1" func=RunCmdOptional name="copy libicudt61 for windows on windows" cp: 'C:\git-sdk-64\mingw64\bin\libicudt61.dll' を stat できません: No such file or directory
今回のエラーは一つだけ記載するが、他にも似たようなのがあった。
git bashのライブラリにlibicudt61.dllがないことによるエラーだった。
下記のURLから古いバージョンをダウンロードし、
7-zipなどで解凍した後、ディレクトリ構造に従いlibicudt61.dllを探して、
エラーメッセージに従って、足りないファイルをgit bashの方のlibディレクトリにコピーして再び実行すれば良い。