2

qmake がすべての C++ プリプロセッサ フラグを moc ユーティリティに渡すことに気付きました。1 つのファイルでこれらのフラグを指定せずに moc を試したところ、同じ結果が得られました。私の質問は: moc がこれらのフラグを必要とするケースはありますか?

4

1 に答える 1

2

mocは、クラスのSLOTSとSIGNALSを管理するCPPファイルを作成します。

それらのいずれかがプリプロセッサルールの下にある場合、MOCはそれについて知る必要があります。例えば:

class A {
 Q_OBJECT
public slots:
#ifdef ENABLE_SLOT1
  void slot1();
#endif;
  void slot2();
};

「-DENABLE_SLOT1」パラメーターを指定せずにmocを実行すると、生成されたCPPファイルは、slot1()を処理するコードを生成する必要があることを認識しません。

于 2012-11-07T11:21:54.423 に答える