Qtビルド:「make clean」のためにすべてが再コンパイルされますか?

Qtビルド:「make clean」のためにすべてが再コンパイルされますか?

(これはQt4.7.3以降のバージョンで動作します。)QtDebianコンピュータでカスタムパラメータを使用してビルドしようとしましたが、実際にコンパイルするのに長い時間がかかりました(シングルコアCPUでIIRCが6時間以上)。だから私はその過程で愚かな間違いを犯さないようにしたいと思います。ただし、正常に接続したら、ファイルやその他のコンテンツをクリーンアップすることを選択しましたmake clean*.oこれは悪い考えのようです!その後、一度やってみたらmake install信じられませんからmake cleanすべてクリーンアップ後に再コンパイルしてください!これまでは、make clean対象ファイルと関連項目をすべて削除しても、新規インストールが可能だと思いました。どうやらそれでQt状況が違います。

公式文書からQt 4.7(参照http://qt-project.org/doc/qt-4.7/install-x11.html)、彼らは言及さえしませんでした任意に選択できる make cleanコマンドの順序に従ってください。今私が知っている限り、ここには妥当な理由があります。それにもかかわらず、私はこれを「標準コンプライアンス」と呼ぶことはできません。何百ものオープンソースアプリケーションをコンパイルし、make clean再コンパイルプロセスをトリガーしたことがなく、保存する必要があるものも削除しなかったためです(バグがない限り)。

答え1

make cleana以前にaをすることが何をすmake installべきかという考えをどこで得たのかわかりません。

自動ツールの仕様INSTALL文書にはプロセスが詳細に記載されています。

  1. ./configure
  2. make
  3. make check(任意に選択できる)
  4. make install
  5. make installcheck(任意に選択できる)

項目 6 には次のように記載されています。

あなたは削除することができますプログラムバイナリ。ソースコードディレクトリのオブジェクトファイルを入力しますmake clean

(強調します。)

make cleanこれは、クリーンなビルドを取得し、以前の実行で残りの副産物がないことを確認するために再コンパイルする前に実行することです。できます。後ろにamake installいくつかのスペースを解放し、ソースコードと構成を維持したい場合。あなたはする必要がありますいいえインストールする前にこれを実行してください。

答え2

Qtビルドスクリプトは次のように動作します。

1 First build qmake
2 Generate Makefile for a subprojects (*.pro)
3 Start building libaries, then examples and demo projects

はい、make cleanはQtによって生成された設定ファイルを除くすべてのエントリを消去します。

私の秘密は、親*.proファイルから「デモ」と「例」を削除することでした。これにより、約40%の時間が節約されました(i5 CPUベース)。

とにかく、コンパイル速度を上げるためにccacheを設定できますが、バッファリングには約2G以上のディスク容量が必要です。

関連情報