mieki256's diary



2020/03/10(火) [n年前の日記]

#1 [prog] QtSDKをインストールしてみたり

PySide2 について勉強しているうちに、Qt Creator等に興味が湧いてきたので、Qt (QtSDK) をインストールしてみようかと。環境は Windows10 x64 1909。

既に Qt 5.5 がインストールされていたので、コントロールパネル経由でアンインストール。

現行のオープンソース版を入手。

_Download Offline Installers

「Qt 5.14.1 for Windows (2.3 GB)」をダウンロード。ファイル名は、qt-opensource-windows-x86-5.14.1.exe だった。

インストーラを実行して、今回は D:\Qt\ 以下にインストール。

この版は、Qtの公式サイトでユーザアカウントを取得して、インストーラ画面上でログインしないとインストールできないっぽい。以前の版はアカウント登録しなくても該当画面をSkipできたらしいのだけど…。仕方ないので一応アカウントを取得したけれど、個人情報流出云々で時々騒動が起きてしまうこの御時世に何故あえて、という気もする…。不要な個人情報はそもそも集めないのが最強のセキュリティ対策なのでは…。

それはさておき。今回は、MinGW 7.3.0 関係にチェックを入れてインストールした。

問題発生。 :

ひとまずインストールして、Qt Creator 4.11.0 (Community) を起動したが、lldb.exe が「python36.dll が見つからない」とエラーを出す。

Qtインストールフォルダを検索してみたが、lldb.exe なんて存在しない…。

which lldb と打ってみて、lldb.exe の居場所が分かった。LLVM 9.0.0 のインストールフォルダ内に居た。

以前、Aseprite をビルドできるか試した際に LVM 9.0.0 をインストールして、それが邪魔をしてきた模様。とりあえず、Python 3.6.8 Windows版 64bit をインストールして、その中の python36.dll を LLVMインストールフォルダ\bin\ 以下にコピーしてみたらエラーが出なくなった。

ビルドしたexeを実行。 :

Hwlloworld をやってみて、.exe が生成された。しかし、ビルドした .exe を直接実行しようとしても、「DLLがねえよ」的なエラーメッセージが出てしまう。

Qt を使った .exe を実行するには、MinGWとQt関係のDLLが必要になるらしい。

_Qt Creatorでビルドした.exeファイルを実行/配布する - Qiita

今回の場合、以下の2つのディレクトリにパスを通すことで実行可能になる模様。
D:\Qt\Qt5.14.1\5.14.1\mingw73_64\bin
D:\Qt\Qt5.14.1\Tools\mingw730_64\bin

PATHの通った場所に、qtpath.bat を作成して、環境変数 PATH に上記の場所を追加するようにしてみる。
@set QTMINGWPATHA=D:\Qt\Qt5.14.1\5.14.1\mingw73_64\bin
@set QTMINGWPATHB=D:\Qt\Qt5.14.1\Tools\mingw730_64\bin
@set PATH=%QTMINGWPATHA%;%QTMINGWPATHB%;%PATH%
@echo Add Qt - MinGW path
@echo %QTMINGWPATHA%
@echo %QTMINGWPATHB%

これで、qtpath.bat を実行してから .exe を実行すれば動くようになった。

exeを配布可能な状態にする。 :

もし、ビルドした exe を配布したい場合、動作に必要なDLLを一緒に入れて配布しないといけない。そのためには、どんなDLLが必要になるかを調べないといけないわけで…。

_Qt Creatorでビルドした.exeファイルを実行/配布する - Qiita

windeployqt.exe を使えば、exeの動作に必要なDLLを調査して、集めてコピーしてくれるそうで。今回の場合は、以下に入ってる。
D:\Qt\Qt5.14.1\5.14.1\mingw73_64\bin\windeployqt.exe

使い方は以下。
windeployqt.exe hoge.exe

この、動作に必要なDLLを集めてくるソレを deploy と呼ぶらしいけど。Qt Creator のプロジェクト設定で独自コマンドを走らせて、リリースビルド時に自動でdeployしたほうがいいかもしれない。以下のページで解説されてた。

_Qt Creatorを用いた自動deploy方法 (Windows 編) [Qt] - nprogram’s blog

D:\Qt\Qt5.14.1\Tools\deploy.bat を作成。内容は以下。「デバッグ」でビルドした時は何もせず、「リリース」でビルドした時に、deploy というディレクトリを作って、その中に exe と dll を集めてくれる。はず。
if "%1"=="デバッグ" goto END
set BUILD_MODE=release
set DEPLOYTOOL=D:\Qt\Qt5.14.1\5.14.1\mingw73_64\bin\windeployqt.exe
if not exist deploy\nul (
mkdir deploy
)
xcopy /C /Y *.exe deploy\
%DEPLOYTOOL% deploy\%2.exe
:END

Qt Creator 上のプロジェクト設定で、以下を設定。
Command: D:\Qt\5.9.1\tool\deploy.bat
Arguments: %{CurrentBuild:Name} %{CurrentProject:Name}
Working directory: %{buildDir}

とりあえず、これで Helloworld の exe を作るところまではできた。

以上です。

過去ログ表示

Prev - 2020/03 - Next
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project