web-dev-qa-db-ja.com

WindowsまたはLinux、32または64ビット、VS2010、VS2012、VS2013またはVS2015 Expressまたはg ++で静的または動的にQt 5をコンパイルする方法

私はブログを持っていないので、それをしようとしている人を助けるための投稿です。

これはLinuxでも機能します。自由に編集して改善してください。

50

注:Windowsで 自動化されたスクリプトを使用してGITソースからコンパイルする に書いた別の記事もあります。この投稿に違いが示されているので、Linux用に変更できます。

この記事は継続的に更新されています。これがあなたを助けるなら、それが人々を助けて、役に立たないことを私が知ることができるように、それを「親指」を与えてください。

コメントがある場合やタイプミスを見つけた場合は、修正できるようお知らせください。

まず、32ビットバージョンと64ビットバージョンのどちらをコンパイルするかは問題ではありません。唯一の違いは、異なる環境変数を初期化するVisual Studioから選択する必要があるコマンドプロンプトショートカットです。


これから始めましょう:

  1. Perlをダウンロードしてインストールします。 ダウンロードリンク

  2. Pythonをダウンロードしてインストールします。 ダウンロードリンク

  3. ダウンロードしてインストールWindows SDK(おそらく必要ではないが推奨)Windows 8を使用しているので、私が使用したバージョンは次のとおりです。 ダウンロードリンク 、それ以外の場合は、Windowsの適切なバージョンを見つけます。

  4. ダウンロードしてインストールDirectX SDK(おそらくでコンパイルしたい場合に必要) OpenGLダウンロードリンク

  5. ダウンロードしてjomフォルダー(Linuxには不要)(jomは、VSで並行してコンパイルするためのツールです。nmakeでこれを行う方法がありますが、私はそれに精通していません)- ダウンロードリンク

  6. Qt Opensourceをダウンロードし、C:\Qt\Qt5.6と言うように展開します。 qtbaseC:\Qt\Qt5.6\qtbaseにあります。

  7. Windowsのみ:本当に完全に静的ですか?

    通常、静的なコンパイルを選択した場合でも、コンパイラ自体はライブラリを静的にマージしません。コンパイルされたソースをコンパイラ(Visual Studio)に対して完全に静的にするには、QtのQMAKEファイルでこの調整を行う必要があります。

    (Qtソースディレクトリから始まる)ファイルに移動し、2012以降のバージョンでは、どこでも正しいバージョンを使用します(win32-msvc2015など)

    • a。 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の新しいバージョンでは、これを手動で行う必要がなくなる場合があります。

  1. LinuxまたはWindowsでターミナルを起動し、Visual Studioのターミナルを起動します(正しい環境変数が設定されているか、または vcvarsall.bat を使用します)。コマンドプロンプトを起動し、これを自動的に実行するには、[スタート]、[すべてのプログラム]に移動します。

    8より前のWindowsバージョンの場合:Microsoft Visual Studio 201xフォルダーを見つけて、コマンドプロンプト(32ビットの場合はx86、64ビットの場合はx64)を起動します。

    Windows 8の場合:Startに移動し、「cmd」と入力すると、コマンドプロンプトで使用可能なすべてのバージョンが表示されます。適切なVisual Studioバージョン(32ビットの場合はx86、64ビットの場合はx64)を選択します。

以下は、それがどのように見えるかのスクリーンショットです。存在する場合は常に「ネイティブ」を選択する傾向があります。

enter image description here

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の場合:

Linux over Windowsには小さな違いが1つあります。 Linuxでは、コンパイル後にinstallをお勧めします。正直なところ、これが問題なく動作する唯一の方法です。

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以降では間違っていると見なされます。新しいバージョンでは実行しないでください。

コンパイル済みソースをディレクトリ/home/username/Qt5.7-installにインストールするとします。この場合、以下をconfigureコマンドのanyに追加します。

-prefix /home/username/Qt5.7-install

警告:同じソースディレクトリにインストールしないでください。それは明らかに間違っています!

-prefixが設定されていない場合、デフォルトのパスが選択されます。これは/usr/local/です。ルートを使用して何かをインストールするのは好きではありません。可逆性とアップグレードが問題にならないように、ユーザーフォルダーにインストールすることを常に好みます。

以下は、何をしたいかによって異なる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個を使用します。より多くのコアを使用することをお勧めします。

  1. コンパイルが完了するまで2時間以上待ちます。

  2. 掃除! Windows用の次のコマンドを使用すると、スペースを大幅に節約できます:C:\Qt\jom\jom.exe cleanそして、Linux用のこのコマンド:make clean

コンパイル済みフォルダーのサイズを8 GBから2.5 GB(動的リンクの場合)および70 GBから35 GB(静的リンクの場合)に縮小できます。


Qt Creatorでこのコンパイル済みバージョンを使用するには:

  1. Qt Creatorを起動します
  2. ツール、オプションに移動します
  3. 左側のリストから「ビルドと実行」を選択します。
  4. 「Qtバージョン」タブに移動します
  5. 「追加」をクリックして、qtbaseのビンがあるフォルダーからqmakeを選択します。

    C:\ Qt\Qt5.7\qtbase\bin\qmake.exe

(またはLinuxの場合、コンパイルされたQtソースをインストールしたパスを選択します。これは、このチュートリアルの/home/username/Qt5.7-install/qtbase/bin/qmakeと同等です)

  1. 「適用」をクリックします
  2. 「キット」タブに移動します
  3. 「追加」をクリックします
  4. 名前を付けて、適切なコンパイラを選択します(VISUAL STUDIO EXPRESSの場合、64ビットではAMD64を選択しないでください。動作しません。x86_AMD64INSTEADを選択してください)
  5. OKをクリックします。

プロジェクトを開くだけで、追加したキットを選択するように求められます。

楽しい :)

89