QT+VS联合开发环境:LN2001:无法解析的外部符号 “public virtual struct QMetaObject const* _thiscall xxx:metaObject(void) const”(?metaObject@xxx@@UBEPUBQMetaObject@@XZ)
项目文件xxx.vcxproj加载已经存在的.h、.cpp、.ui文件后,进行编译出现该LN2001无法解析的外部符号的错误。
原因:
手动添加已有的文件,可能未进行相应的元操作,没有调用moc.exe生成moc_xxx文件。编译器一直未能找到对应的moc_xxx文件。
解决办法:
1、用notepad打开xxx.vcxproj文件,手动增加缺失的.h文件的moc编译命令选项。具体位置在Command节点一栏中。具体命令可以自己查询。
2、在xxx.vcxproj文件中手动增加缺失.cpp文件的debug和release选项。可以参考文件中其他的格式。
3、在xxx.vcxproj文件中手动增加缺失.ui文件的配置。参照文件中其他的样例。