私はしばらく解決しようとしていたが、完全に困惑しているという問題がある。だから、XとYの2つのクラスがあり、それぞれに独自のヘッダファイルX.hとY.hがあります。それぞれはQ_OBJECTであり、ヘッダファイルにそのマクロ定義があります。Qt - C2504を引き起こすmoc:基底クラスが未定義
class Y: public X { Q_OBJECT ...}
Yの定義が読み取ります。 Xの定義は、読み取ります。私はコンパイルすると、
class X: public QGLWidget {Q_OBJECT ...}
X.cppとY.cppは正しくコンパイルし、その段階での問題はありません。 mocファイルも問題なく生成されます。
しかし、標準QTビルドプロセスがmoc_X.cppをコンパイルすると、 "C:\ path \ Y.h(34):エラーC2504: 'X':基本クラスが定義されていません。しかし、これはY.cppやX.cppをコンパイルしているときには起こりません。これは、mocファイルをコンパイルするときにのみ起こります!何か案は?モックの段階でビルドが失敗し、モカの段階だけが非常に独特のように思える。助けが大いにありがとう!
何らかの変更によって、クラスXを宣言し、ヘッダーを含めなかったか? – blueskin