我在编译项目时遇到了这个非常奇怪的问题。MOC 似乎正在向被 moc'ed 的类名添加命名空间,尽管文件/类中的任何地方都没有提到它。
然而,命名空间存在于我使用的库中,但它隐藏在头文件中很远的地方,我不在 UI 文件中使用它。这是 MOC 生成的:
const QMetaObject SmpTl::CaptureController::staticMetaObject = {
{ &QObject::staticMetaObject, qt_meta_stringdata_SmpTl__CaptureController,
qt_meta_data_SmpTl__CaptureController, 0 }};
命名空间在的SmpTl
声明中没有提到CaptureController
,但它出现在 MOC 生成的 .cpp 文件中。
我正在使用带有 QT 集成的 Visual Studio。