私はブログを持っていないので、それをやろうとしている人たちを助けるための投稿です.
これはLinuxでも機能します。自由に編集して改善してください。
私はブログを持っていないので、それをやろうとしている人たちを助けるための投稿です.
これはLinuxでも機能します。自由に編集して改善してください。
注: Windowsで自動化されたスクリプトを使用して GIT ソースからコンパイルするために私が書いた別の記事もあります。違いはこの投稿に示されているので、Linux 用に変更することができます。
この記事は継続的に更新されています。これが役に立った場合は、「いいね」を付けてください。そうすれば、役に立たず、人々を助けていることがわかります。
コメントがある場合、またはタイプミスを見つけた場合は、修正できるようにお知らせください。
まず、32 ビット バージョンと 64 ビット バージョンのどちらをコンパイルするかは問題ではありません。唯一の違いは、異なる環境変数を初期化する Visual Studio から選択する必要があるコマンド プロンプト ショートカットです。
これから始めましょう:
Perl のダウンロードとインストール:ダウンロード リンク
Python のダウンロードとインストール:ダウンロード リンク
Windows SDKをダウンロードしてインストールします(おそらく必要ではありませんが、推奨されます) 私は Windows 8 を使用しているので、これが使用したバージョンです:ダウンロード リンク ,そうでない場合は、お使いの Windows に適したバージョンを見つけてください。
DirectX SDKをダウンロードしてインストールします ( OpenGLでコンパイルする場合はおそらく必要です) ダウンロード リンク
jomをいくつかのフォルダーにダウンロードして解凍します (Linux では必要ありません) ( jomは VS で並行してコンパイルするためのツールです。nmake でこれを行う方法がありますが、私はそれに慣れていません)ダウンロード リンク
Qt Opensourceをダウンロードし、それを解凍します。C:\Qt\Qt5.6
これで、フォルダqtbase
が に見つかりますC:\Qt\Qt5.6\qtbase
。
Windows のみ: 完全に静的にしたいですか?
通常、コンパイルを静的に選択しても、コンパイラ自体はそのライブラリを静的にマージしません。コンパイルされたソースをコンパイラ (Visual Studio) に対して完全に静的にしたい場合は、Qt の QMAKE ファイルでこの調整を行う必要があります。
ファイルに移動します (Qt ソース ディレクトリから開始)。2012 年以降のバージョンの場合は、どこでも適切なバージョンを使用してください (win32-msvc2015 など) :
を。VS2012 の場合: qtbase\mkspecs\win32-msvc2012\qmake.conf
b. VS2010 の場合: qtbase\mkspecs\win32-msvc2010\qmake.conf
c. Qt 5.5.0 以降(任意の VS バージョン) の場合: qtbase\mkspecs\common\msvc-desktop.conf
次の行を編集します
QMAKE_CFLAGS_RELEASE = -O2 -MD
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MD -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MDd
に
QMAKE_CFLAGS_RELEASE = -O2 -MT
QMAKE_CFLAGS_RELEASE_WITH_DEBUGINFO += -O2 -MT -Zi
QMAKE_CFLAGS_DEBUG = -Zi -MTd
注: Qt 5.6+ には、-static-runtime
これを行う構成パラメーターがあります。Qt の新しいバージョンでは、これを手動で行う必要がなくなる場合があります。
Linux または Windows でターミナルを起動し、Visual Studio のターミナルを起動します (正しい環境変数が設定されているか、代わりにvcvarsall.batを使用します)。コマンド プロンプトを起動して、これを自動的に行うには、[スタート]、[すべてのプログラム] に移動します。
8 より前の Windows バージョンの場合: Microsoft Visual Studio 201x フォルダーを見つけて、コマンド プロンプト (32 ビットの場合は x86、64 ビットの場合は x64) を起動します。
Windows 8 の場合: [スタート]に移動し、「cmd」と入力すると、コマンド プロンプトで使用可能なすべてのバージョンが表示されます。適切な Visual Studio バージョンを選択します (32 ビットの場合は x86、64 ビットの場合は x64)。
以下は、それがどのように見えるかのスクリーンショットです。存在する場合は常に「ネイティブ」を選択する傾向があります。
9.
VS2012 の場合: VS2012の場合は次のコマンドを実行します。
set QMAKESPEC=win32-msvc2012
set QTDIR=C:\Qt\Qt5.7\qtbase
set PATH=C:\Qt\Qt5.7\qtbase\bin;%PATH%
注:QMAKESPEC
環境変数の設定は、Qt バージョン 5.8 以降では間違っていると見なされます。新しいバージョンでは行わないでください。
動的リンク用 (8 GB が必要)
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop
例のない動的リンクの場合 (2 GB が必要)
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -nomake examples -nomake tests
Now the last command depends on what you want to compile. Just type configure -help and see what the available command-line parameters are.
静的リンクの場合 (70 GB が必要です。はい、クレイジーです。例とデモを作成しない方が合理的です)。
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -static
例のない静的リンクの場合 (4 GB が必要、より理にかなっています)。
configure -debug-and-release -opensource -platform win32-msvc2012 -opengl desktop -static -nomake examples -nomake tests
これには 1 ~ 2 分かかります。次に、jom を次のように使用します (C:\Qt\jom に展開されていると仮定します)。
C:\Qt\jom\jom.exe -j 50
50 は、使用するコアの数を表します。私は 8 つのスレッドがあり、8 つだけを使用してもすべてのコアを完全に占有することはないため、50 を使用します。
VS2010 の場合: VS2010の場合は次のコマンドを実行します。
set QMAKESPEC=win32-msvc2010
set QTDIR=C:\Qt\Qt5.7\qtbase
set PATH=C:\Qt\Qt5.7\qtbase\bin;%PATH%
注:QMAKESPEC
環境変数の設定は、Qt バージョン 5.8 以降では間違っていると見なされます。新しいバージョンでは行わないでください。動的リンク用 (8 GB が必要)
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop
例のない動的リンクの場合 (2 GB が必要)
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -nomake examples -nomake tests
最後のコマンドは、何をコンパイルするかによって異なります。configure -help と入力するだけで、使用可能なコマンド ライン パラメータを確認できます。静的リンクの場合 (70 GB が必要です。はい、クレイジーです。例とデモを作成しない方が合理的です)。
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -static
例のない静的リンクの場合 (4 GB が必要、より理にかなっています)。
configure -debug-and-release -opensource -platform win32-msvc2010 -opengl desktop -static -nomake examples -nomake tests
これには 1 ~ 2 分かかります。次に、jom を次のように使用します (C:\Qt\jom に展開されていると仮定します)。
C:\Qt\jom\jom.exe -j 50
50 は、使用するコアの数を表します。私は 8 つのスレッドがあり、8 つだけを使用してもすべてのコアを完全に占有することはないため、50 を使用します。
Linux と Windows には小さな違いが 1 つあります。Linux では、コンパイル後にインストールすることをお勧めします。正直なところ、これが問題なく機能する唯一の方法です。
Linux の場合は、次のコマンドを実行します。パスを Qt ソースの正しいパスに置き換えることを忘れないでください
export QMAKESPEC=linux-g++
export QTDIR=/home/username/Qt5.7/qtbase
export PATH=/home/username/Qt5.7/qtbase/bin:$PATH
注:QMAKESPEC
環境変数の設定は、Qt バージョン 5.8 以降では間違っていると見なされます。新しいバージョンでは行わないでください。
コンパイルしたソースを directory にインストールするとします/home/username/Qt5.7-install
。この場合、以下の構成コマンドのいずれかに次を追加します。
-prefix /home/username/Qt5.7-install
警告: 同じソース ディレクトリにインストールしないでください。それは明らかに間違っています!
が設定されていない場合-prefix
、デフォルトのパスが選択されます/usr/local/
。root を使用して何かをインストールするのは好きではありません。可逆性とアップグレードが問題にならないように、私は常に自分のユーザー フォルダーにインストールすることを好みます。
以下はconfigure
、実行したい内容に応じて可能なコマンドが異なります。
動的リンク用 (8 GB が必要)
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop
例のない動的リンクの場合 (2 GB が必要)
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -nomake examples -nomake tests
最後のコマンドは、何をコンパイルするかによって異なります。./configure -help
使用可能なコマンド ライン パラメータを入力して確認するだけ です。
静的リンクの場合 (70 GB が必要です。はい、クレイジーです。例とテストを作成しない方が合理的です)。
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -static
例のない静的リンクの場合 (4 GB が必要、より理にかなっています)。
./configure -debug-and-release -opensource -platform linux-g++ -opengl desktop -static -nomake examples -nomake tests
作成が完了したら、make コマンドを実行します。
make -j 50
50 は、使用するコアの数を表します。私は 8 つのスレッドがあり、8 つだけを使用してもすべてのコアを完全に占有することはないため、50 を使用します。
コンパイルが完了するまで 2 時間以上待ちます。
掃除!C:\Qt\jom\jom.exe clean
Windows では次のコマンドを使用し、Linuxでは次のコマンドを使用して、多くのスペースを節約できます。make clean
コンパイル済みフォルダーのサイズを 8 GB から 2.5 GB (動的リンクの場合) に、70 GB から 35 GB (静的リンクの場合) に減らすことができます。
このコンパイル済みバージョンを Qt Creator で使用するには:
[追加] をクリックし、qtbase の bin があるフォルダーから qmake を選択します。上から:
C:\Qt\Qt5.7\qtbase\bin\qmake.exe
(または Linux の場合は、コンパイル済みの Qt ソースをインストールしたパスを選択します。これは/home/username/Qt5.7-install/qtbase/bin/qmake
、このチュートリアルと同じです)
プロジェクトを開くと、追加したキットを選択するよう求められます。
楽しみ :)