Windows上に構築されたQtをインストールする方法に関する情報が見つかりません。
wikiの記事 MacおよびLinuxでシャドウビルドを設定する方法configure
スクリプトに-prefix
オプションの説明がありますが、このオプションはWindowsでは使用できません。
ビルドフォルダーから直接Qtを使用できることは知っていますが、インストール手順を実行しないのは正しいことではないようです。このアプローチの問題の1つは、サイズです。 Qtのビルドフォルダーは約4GBのスペースを必要としますが、バイナリインストーラーを使用してインストールした後、Qtは約1GBのスペースを必要とします。違いは、ビルド中に作成された一時ファイルによるものだと思います。一部のインストール手順で、必要なファイルのみをインストール(コピー)し、ビルドフォルダーに一時ファイルを残しておくことを願っています。
イスマイルが言ったように、Windows上のQtのインストール手順はありません。ただし、次の操作を実行することで近似を試みることができます。
make clean
を実行して、すべての一時ファイルを削除します。INSTALL_DIR
と呼びましょう。qmake.exe
実行可能ファイルにハードコードされたパスの修正qmake -query
を実行して、どのパスがqmakeにコンパイル(ハードコード)されているかを確認します。INSTALL_DIR
を使用してqmake -set
に置き換えることで修正します(1)。qt.conf
のbinサブフォルダーに INSTALL_DIR
ファイルを作成し、その中に新しいQtパスを指定します。QMAKE_INCDIR
に含まれているため、プロジェクトのインクルードパスは「。」になります。これは、カスタムビルドのQtではデフォルトでは発生しないため、mkspecs/YOUR-PLATFORM-HERE/qmake.conf
ファイルに次の行を追加する必要があります。QMAKE_INCDIR += "."
prl
ファイルの修正CONFIG += uitools
など)に追加すると、Qtは%QTDIR%/lib/QtUiTools.prl
を調べて、そのコンポーネントのライブラリ依存関係を見つけます。これらのファイルには、Qtが構成および構築されたディレクトリのハードコードされたパスが含まれます。そのビルドディレクトリを、すべてのlib/*.prl
ファイルのQtを移動したディレクトリに置き換える必要があります。include
サブフォルダー内のヘッダーのみforward元のヘッダー。例えば; 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)。
上記の情報の多くは、Gabe Rudyによって作成された RelocationTricks wikiページからのものです。彼の MSVC 2008を使用したビルド済みバイナリのQt(Qt4)オープンソースWindowsインストーラー プロジェクトをチェックしてください。これにより、上記の問題を簡単に解決できます。
この回答は、上記のPiotr(現在最高評価)の回答のステップ3と5に代わるものですが、達成しようとしていることによっては、彼の回答に他のステップが必要になる場合があります。
要約すると、Qtディレクトリを目的の場所に移動した後、公式のQt installers のいずれかをダウンロードし、次のコマンドライン引数を指定して実行します。
cd <path>
installer.exe --runoperation QtPatch windows <path> qt5
<path>
を移動した後、Qtディレクトリのフルパスに置き換えます(Qt5を使用している場合はqtbase
ディレクトリ)。 Qt 4を使用している場合は、最後の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ビットのビルドを維持するために使用します。
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
ファイルも自動的に更新します。
Windows上のQtはmake install
でインストールできません。Windows用のQtインストーラーは、新しいインストール場所のdllとpdbにパッチを適用するだけです。
私が提案するのは、インストールしたい場所にシャドウビルドを行うことです。 *.obj
ファイルを手動で削除して、スペースを節約できます。
ステップ1:Qtを移動する
ステップ2:古いQtディレクトリを取得する
ステップ3:パッチQt
ステップ4:環境変数を設定する
これらすべてをバッチファイルで行うことができます。これは私が運動するのにかなりの時間を要し、それ以来私に多くの時間を節約しました。これは、Qtインストールを新しい場所に自動的に更新するスクリプトです。バッチファイルが利用可能です ここ 。
QtMove(http://www.runfastsoft.com)がこれを簡単に実行できる簡単なユーティリティがあります。
再配置されたqmake.exeビルドを実行して.proファイルを作成し、すべてを新しいQtライブラリにリンクする必要があります。