Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我注意到 qmake 将所有 C++ 预处理器标志传递给 moc 实用程序。我在一个文件上尝试了没有这些标志的 moc,它产生了相同的结果。我的问题是:在某些情况下 moc 会需要这些标志吗?
moc 创建一个管理类的 SLOTS 和 SIGNALS 的 CPP 文件。
如果其中任何一个在预处理器规则下,MOC 需要知道它。例如:
class A { Q_OBJECT public slots: #ifdef ENABLE_SLOT1 void slot1(); #endif; void slot2(); };
如果您在没有“-DENABLE_SLOT1”参数的情况下运行 moc,则生成的 CPP 文件将不知道它需要生成代码处理 slot1()。