デフォルトの非並列ビルドのみを実行した場合、Qt のビルドには高速なシステムでも数時間かかります。デフォルトでは、必要のない多くのライブラリも取り込まれます。
したがって、最初に試みることはmake -j
、並列ビルドを行うことです。それでも時間がかかりすぎる場合は、Qt が生成するライブラリを縮小してみてください。たとえば、QtWebKit が必要ですか? アプリケーションに組み込みの Web ブラウザーを使用する予定がある場合は、それが必要になります。そうでない場合は、ビルドの時間を半分にすることができます。入力してオプションconfigure --help
を表示します。ビルド時間を短縮できるいくつかの便利なものは次のとおりです。
注: 次のオプションの一部は、Qt5 では適用できなくなりました
- -fast - Qt 自体を開発するのではなく、Qt だけを使用している場合に使用します。
- -no-webkit - 組み込みの Web ブラウザーが必要ない場合、これは大きな違いになります。
- -release - デバッグ ライブラリが必要ない場合は、このほうが速くなります。
- -no-qt3-support - 新しいプロジェクトには必要ありません
- -nomake 例 - 例をビルドしないでください
- -nomake demos - デモをビルドしないでください
- -no-declarative - QtQuick API を使用していない場合は、これを省略します
- -nomake docs - ドキュメントをビルドしません (これにより多くの時間を節約できます)
この Amazon インスタンスで時間料金を支払う必要がある場合は、別のオプションとして、ローカルの Ubuntu マシンを (予備のマシンまたは仮想マシンに) 作成し、機能するものが得られるまでそこでオプションを微調整してから、それを使用します。 Amazon インスタンスで構成を構築します。
編集:
Qt5 では、プロジェクトは git サブモジュールを使用するように変更されたため、git チェックアウトからビルドする場合、デフォルトの動作はすべてのサブモジュールを複製することであり、必要のないモジュールがある場合、ビルド時間が大幅に増加します。init-repository
qt5 リポジトリの一部であるスクリプトがあります。これを使用して、ローカル リポジトリをトリミングして、必要なサブモジュールのみを含めることができます。たとえば、次のようになります。
git clone https://git.gitorious.org/qt/qt5.git
cd qt5
./init-repository --module-subset="qtbase qtdeclarative qtquick1"
configure --your-options-here
make -j
私のマシンでは、qtbase の基本的なビルドを約 10 分で実行できます。