Windows または Linux、32 ビットまたは 64 ビット、Visual Studio または g++ で静的または動的に Qt 5 をコンパイルする方法 質問する

Windows または Linux、32 ビットまたは 64 ビット、Visual Studio または g++ で静的または動的に Qt 5 をコンパイルする方法 質問する

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

これは Linux でも動作します。自由に編集して改良してください。

ベストアンサー1

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

この記事は継続的に更新されています。この記事が役に立った場合は、「いいね」を押して、この記事が人々の役に立っていて役に立たないことを知らせてください。

ご意見や誤字脱字などございましたら、修正できるようお知らせください。

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


まずはこれから始めましょう:

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

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

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

  4. ダウンロードとインストールDirectX SDK(コンパイルする場合はおそらく必要)オープンGLダウンロードリンク

  5. ダウンロードして解凍ジョム任意のフォルダに(Linuxでは必要ありません)(ジョムVSで並列にコンパイルするためのツールですが、これを行う方法がありますメイク(私はそれについてよく知らないのですが)ダウンロードリンク

  6. ダウンロードQt オープンソース、それを に解凍するとC:\Qt\Qt5.6、フォルダはqtbaseで見つかるようになりますC:\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

    • 紀元前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 以降には、これを自動的に実行する configure パラメータがあります-static-runtime。新しいバージョンの Qt では、これを手動で行う必要がなくなる場合があります。

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

    Windows バージョン 8 より前の場合: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%
    

注意: QMAKESPECQt バージョン 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 つのスレッドを持っているので 50 を使用していますが、8 つだけを使用するとすべてのコアを完全に占有することはできません。したがって、より多い方が良いですが、欲張りすぎるとシステムが応答しなくなる可能性があります。

  • 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 つのスレッドを持っているので 50 を使用していますが、8 つだけを使用するとすべてのコアを完全に占有することはできません。したがって、より多い方が良いですが、欲張りすぎるとシステムが応答しなくなる可能性があります。

  • Linuxの場合:

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

注意: QMAKESPECQt バージョン 5.8 以降では、環境変数を設定することは間違っているとみなされます。新しいバージョンでは設定しないでください。

コンパイルされたソースをディレクトリにインストールしたいとします/home/username/Qt5.7-install。この場合、次の行を追加します。どれでも以下の configure コマンドを実行します。

-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 つのスレッドを持っているので 50 を使用していますが、8 つだけを使用するとすべてのコアを完全に占有することはできません。したがって、より多い方が良いですが、欲張りすぎるとシステムが応答しなくなる可能性があります。

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

  2. クリーンアップ! Windows の場合は次のコマンドを使用して、多くのスペースを節約できます: C:\Qt\jom\jom.exe cleanLinux の場合は次のコマンドを使用します:make clean

コンパイルされたフォルダーのサイズを 8 GB から 2.5 GB (動的リンクの場合) に、70 GB から 35 GB (静的リンクの場合) に削減できます。


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

  1. Qt Creatorを起動する
  2. ツール、オプションに移動
  3. 左側のリストから「ビルドと実行」を選択します。
  4. 「Qtバージョン」タブに移動します
  5. 「追加」をクリックし、qtbase の bin があるフォルダーから 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_amd64 を選択してください)
  5. [OK]をクリックします。

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

楽しむ :)

おすすめ記事