Windows上に構築されたQtをインストールする方法に関する情報が見つかりません。
ウィキの記事「MacとLinuxでシャドウビルドを設定する方法」に-prefix
は、スクリプトのオプションの説明がありますconfigure
が、このオプションはWindowsでは使用できません。
ビルドフォルダから直接Qtを使用できることは知っていますが、インストール手順を実行しないのは正しいことではないようです。このアプローチの問題の1つは、サイズです。Qtのビルドフォルダーは約4GBのスペースを必要としますが、バイナリインストーラーを使用してインストールした後、Qtは約1GBのスペースを必要とします。違いは、ビルド中に作成された一時ファイルによるものだと思います。いくつかのインストール手順で、必要なファイルのみをインストール(コピー)して、ビルドフォルダーに一時ファイルを残しておくことを願っています。
8 に答える
İsmailが言ったように、Windows上のQtのインストール手順はありません。ただし、次の操作を実行することで近似を試みることができます。
- クリーニングビルドフォルダで
実行して、すべての一時ファイルを削除します。make clean
コピービルドフォルダをQtを「インストール」したい場所に移動します。それを呼びましょうINSTALL_DIR
。qmake.exe
実行可能ファイルでハードコードされたパスの修正実行qmake -query
して、qmakeおよび
aにコンパイル(ハードコード)されたパスを確認します。INSTALL_DIR
ビルドフォルダを含むパスをusingqmake -set
(1)に置き換えて修正します。
または
b。その中の新しいQtパスを指定qt.conf
するbinサブフォルダーにファイルを作成します。INSTALL_DIR
- パスを含めるための現在のディレクトリの追加
Qtが提供するバイナリディストリビューションでは、pwdはに含まれているQMAKE_INCDIR
ため、プロジェクトのインクルードパスは「。」になります。これは、カスタムビルドのQtではデフォルトでは発生しないため、mkspecs/YOUR-PLATFORM-HERE/qmake.conf
ファイルに次の行を追加する必要があります。
QMAKE_INCDIR += "."
prl
ファイルの修正
Qtコンポーネントをプロジェクトファイル(などCONFIG += uitools
)に追加すると、Qt%QTDIR%/lib/QtUiTools.prl
はそのコンポーネントのライブラリ依存関係を検索します。これらのファイルには、Qtが構成および構築されたディレクトリのハードコードされたパスが含まれます。そのビルドディレクトリを、すべてのlib/*.prl
ファイルのQtを移動したディレクトリに置き換える必要があります。- ソースを利用可能
にするシャドウビルド(ソースを含むフォルダー以外のフォルダー内で作成されたビルド)を作成した場合、include
サブフォルダー内のヘッダーは元のヘッダーにのみ転送されます。例えば;BUILD_DIR\include\QtCore\qabstractanimation.h
ソースを含むフォルダーの存在に依存したく
#include "SRC_DIR/src/corelib/animation/qabstractanimation.h"
ない場合は、SRC_DIR/src
サブフォルダーを宛先フォルダーにコピーし、フォルダー内のすべてのヘッダーを修正して、サブフォルダーinclude
の新しい場所に転送する必要がありsrc
ます。
結論:
WindowsでのQtのビルドプロセスでは、ビルド後にQtを移動(インストール)するのが非常に面倒です。あなたはこれをするべきです...まあ私はこのすべての問題を経験する正当な理由を見つけることができません。
覚えておいてください
簡単な方法は、ビルド後にQtを残したいフォルダーにQtのソースを配置し、このフォルダーにビルドを作成することです。これにより、上記の1と4を除くすべての手順が不要になります。
1)
設定した変数qmake -set
はレジストリキーに保存されます
HKEY_CURRENT_USER\Software\Trolltech\QMake\<QMAKE_VERSION>
。
このため、同じバージョンのqmakeを持つ異なるバージョンのQtを使用して、異なるプロジェクトを作成したい場合に問題が発生する可能性があります。この場合、より良い解決策はqt.conf
ファイル(実際にはQtのインストールごとに1つのファイルが必要なためファイル)を使用することです(オプション3b)。
上記の情報の多くは、GabeRudyによって作成されたRelocationTrickswikiページからのものです。彼のQt(Qt4)Opensource Windows Installers of Pre-built Binaries with MSVC 2008プロジェクトをチェックしてください。これにより、上記の問題を簡単に解決できます。
この回答は、上記のPiotrの(現在最も評価の高い)回答のステップ3と5に代わるものですが、達成しようとしていることによっては、彼の回答に他のステップが必要になる場合があります。
- これは、公式インストーラーがインストール中にハードコードされたパスを修正するために使用する操作です:qt.520.win32_msvc2012.addons / meta / installscript.qs
- これは、操作が実装される方法です:qtpatchoperation.cpp
- これはそれが修正するファイルのリストです:files-to-patch-windows-qt5
- これは、コマンドラインからスタンドアロンコマンドとしてインストーラー操作を呼び出す方法を示しています。操作(Qtインストーラーフレームワークマニュアル)
要約すると、Qtディレクトリを目的の場所に移動した後、公式のQtインストーラーのいずれかをダウンロードし、次のコマンドライン引数を指定して実行します。
cd <path>
installer.exe --runoperation QtPatch windows <path> qt5
Qtディレクトリ( Qt 5を使用している場合はディレクトリ)<path>
を移動した後、そのフルパスに置き換えます。Qt 4を使用している場合はqtbase
、最後の引数を省略してください。qt5
これにより、qmake.exe、.prlファイルなどのハードコードされたパスが修正されます。それはあなたに公式のインストーラーがその点で持っているのと全く同じ振る舞いを与えます。
最初の動きのnmake "INSTALL_ROOT=\somewhere" install
ために、私のために働きます。これが、Piotrの回答のステップ1と2です。そして、私はステップ4または6、FWIWを必要としませんでした。
次のようなプレフィックスオプションを使用して、WINDOWS(Visual Studioビルド)でQT5を構成できます。
configure -prefix C:\the\path\I\want ...
次に、電話します。
nmake
nmake install
後者はQtをC:\ the \ path \ I\wantにインストールします。
これまでのところ、Qt5.2.1と5.3.xで問題なく実行できました。したがって、以前の問題は今では修正されているようです。
Windowsに「makeinstall」がないと主張するのは非常に奇妙なことです。
私は何度もそれを使用しました、そしてそれが他のプラットフォームでそうであるものではないことに同意します、しかしそれはその目的を果たします。
QtのmakeinstallをWindowsで使用する方法(cmdから):
configure
(n/mingw32-)make
(n/mingw32-)make docs
(n/mingw32-)make install
make installビットは、ソースディレクトリを削除できるようにするために必要なすべてのヘッダーをコピーします。すべてのオブジェクトと不要なものを削除します。
del /S /Q *.obj lib\*.dll
rmdir /S /Q docs-build qmake tools src
これにより、ソースディレクトリを削除できます。これがQtソースコードのデバッグにどのような影響を与えるかはわかりませんが、シャドウビルドのサイズが確実に縮小されます。最小サイズで32ビットと64ビットのビルドを維持するために使用します。
Windows上のQtはでインストールできません。Windows用make install
のQtインストーラーは、新しいインストール場所のdllとpdbsにパッチを適用するだけです。
私が提案するのは、インストールしたい場所にシャドウビルドを行うことです。手動で*.obj
ファイルを削除して、スペースを節約できます。
Qt独自のビルド手順は、各Makefile内で検索/置換することにより、これがどのように行われるかを示しています。ソースがC:\ qt-4.8.3に抽出され、そのディレクトリ内でビルドが実行されたと仮定して、次のようにします。
fart -c -i -r Makefile* $(INSTALL_ROOT)\qt-4.8.3 $(INSTALL_ROOT)\my-install-dir
set INSTALL_ROOT=
mingw32-make install
次に、qmakeに新しいインストールパスを通知する構成ファイルを作成します。テキストファイルを作成しますC:\ my-install-dir \ bin \ qt.conf:
[Paths]
Prefix=C:/my-install-dir
Translations = translations
次に、最後のステップとして(Randyが親切に指摘したように)、qmake.exeにパッチを適用する必要があります。これは、QtMoveと呼ばれる単純なユーティリティを使用して実行できます。この同じツールは、すべてのprl
ファイルを自動的に更新します。
QtMove(http://www.runfastsoft.com)がこれを簡単に実行できる簡単なユーティリティがあります。
再配置されたqmake.exeを実行して.proファイルをビルドし、すべてを新しいQtライブラリにリンクする必要があります。
ステップ1:Qtを移動する
- カット&ペースト
- 現在のディレクトリ-C:\ tools \ Qt
- 宛先ディレクトリ-C:\ sim \ dep \ Qt
ステップ2:古いQtディレクトリを取得する
- C:\ sim \ dep \ Qt \ 2010.02.1\Qtに移動します
- .qmake.cacheを開きます
- 変数QT_SOURCE_TREEを検索します
- QT_SOURCE_TREEの値に注意してください
- 私はC:\ tools \ Qt \ 2010.02.1\Qtでした
ステップ3:パッチQt
- C:\ sim \ dep \ Qt \ 2010.02.1\binに移動します
- 構文はqpatch.exelistoldDirnewDirです。
- qpatch.exe files-to-patch-windows C:\ tools \ Qt \ 2010.02.1 \ Qt C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt
ステップ4:環境変数を設定する
- QTDIR = C:\ sim \ dep \ Qt \ 2010.02.1\Qtを設定します
- QMAKESPEC = C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt \ mkspecs \win32-g++を設定します
- set PATH =%path%; C:\ sim \ dep \ Qt \ 2010.02.1 \ Qt \ bin
- set PATH =%path%; C:\ sim \ dep \ Qt \ 2010.02.1 \ bin
これらすべてをバッチファイルで行うことができます。これは私が解決するのにかなりの時間を要し、それ以来私に多くの時間を節約してくれました。これは、Qtインストールを新しい場所に自動的に更新するためのスクリプトです。バッチファイルはこちらから入手できます。