描述:在VS项目头文件一开始没有添加QT信号槽机制,后续需要添加时继承QObject并声明Q_OBJECT宏,生成了moc文件仍然出现报错
error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl CFileManager::metaObject(void)const “
error LNK2001: 无法解析的外部符号 "public: virtual void * __cdecl CFileManager::qt_metacast(char const *)"
error LNK2001: 无法解析的外部符号 "public: virtual int __cdecl CFileManager::qt_metacall(enum QMetaObject::Call,int,void * *
解决方法:将关联文件从VS工程(所有用到的项目)移除重新添加进去,再次编译,解决
后续:
重新添加后的VS工程文件.vcxproj
中
<ClInclude Include="..\Common\include\FileManager.h" />
变为了<QtMoc Include="..\Common\include\FileManager.h" />