Qt が独自の make ツール qmake を使用するのはなぜですか?
-
21-09-2019 - |
解決
のQt用途は、「MOC、メタオブジェクトコンパイラ」(シグナル・スロットを提供する)、「UIC、UIコンパイラ」(.uiデザイナーファイルからヘッダファイルを作成する)を含む、透過Qtの様々なアドオンをサポートするためにqmakeの"RCC、リソースコンパイラ"(リソースをコンパイルします)。
あなたが好きなビルドシステムを使用して、あなたを停止するものは何もありません。しかし、それは多くの仕事です。たとえば、シグナルまたはスロットを持つクラスが含まれているすべてのヘッダファイル上で「MOC」を実行する必要があります。一般的には、特にだけのQtを使用することを始めている誰かのために、お勧めできません。
qmakeのがg ++ / gccを直接呼び出すことはありません。代わりに、qmakeはあなたの現在のプラットフォーム上でネイティブのmakeファイルを作成します。 Linuxでは、それは、Mac OS Xの下では、Xcodeプロジェクトファイルを生成することができ、窓の下には、Visual Studioのメイクファイルを生成することができ、標準のGNUのmakeファイルを作成します。あなた、あなたのネイティブコンパイラ(G ++ / gccのか、何でも)を呼び出しますあなたのネイティブビルドシステム(GNUのメイク、またはMS NMAKE、またはxcodebuildまたは任意のいずれか)、呼び出します。
他のヒント
私のopinnionのqmakeのでは、単純なプロジェクトのためにクールです。特に、qmakeのののconfigure機能は冗談です。
私が知っている最良のビルドシステムは、cmakeのとWafの(Pythonがベース)です。私自身のQtのプロジェクトで、私は仕事をするCMakeのを使用しています。ただ、KDE-みんなのように:)
そのシグナル/スロット・システムをサポートするためにQtは処理の多くを行う中間オブジェクトを生成する特別なプリプロセッサとコンパイラに依存しています。彼らは、をメタオブジェクトコンパイラまたは MOC の。
としてこれを参照しますを参照してください。のQt 5ドキュメント:メタオブジェクトコンパイラ詳細はを使用ます。
(他の中間のツールのカップルと一緒に)MOCはqmake
と連携して動作します。あなたのネイティブ形式(VC ++、G ++など)でのMakefileを生成し、ビルド自動化ツールのビルドの中間MOCによって生成されたファイルだけでなく、最終的な実行可能ファイルへのソースファイルのすべてをそれています。
の qmakeののクロスプラットフォームと柔軟になるように設計されています。これは、Microsoft Visual StudioとのXcodeと互換性ができます。
あなたはすべて qmakeはマニュアルの中でそれを見つけることができます。
はqmakeのは、に基づいて、Makefileを生成します プロジェクトファイルの情報。 プロジェクトファイルはによって作成され 開発者、および通常はシンプルですが、 より洗練されたプロジェクトファイル缶 複雑なプロジェクトのために作成されます。 qmakeは への追加機能が含まれています Qtのと開発を支援、 自動的にビルドルールを含みます MOCおよびUICのため。 qmakeのは、することもできます マイクロソフトのVisualのためのプロジェクトを生成 開発者を必要とせずに、スタジオ プロジェクトファイルを変更します。
ために
)それはあなたのために舞台裏で多くのことを行いますので、
B)はい、参照)。
C)はい、それは++コールグラムを行います(ただし、あなたがそれらを持っている場合は、他のコンパイラをサポートすることができます)。