Qt5.1.1 修改ui文件后莫名奇妙的错误。(问题描述很详细,进来看看)
环境:Qt5.1.1 32位版,网友预编译的静态编译版,win7 64位, VS2012
一、新建工程->加入C++ Qt GUI 的第二章sort例子中源文件,头文件,ui文件->编译->成功运行。(这说明代码并没错。)
如下图:并没有用到什么非常高级的知识。
问题来了:
二、把项目里的ui文件移除,moc_开头的文件移除,ui的头文件移除,清理解决方案。
打开ui文件,用Qt设计师在一个label中的text加入一点字符(其实就是随便改一下,改了哪里不重要。)
重新加入UI文件->编译->
1>sortdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall SortDialog::metaObject(void)const " (?metaObject@SortDialog@@UBEPBUQMetaObject@@XZ)
1>sortdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall SortDialog::qt_metacast(char const *)" (?qt_metacast@SortDialog@@UAEPAXPBD@Z)
1>sortdialog.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall SortDialog::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@SortDialog@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
1>sortdialog.obj : error LNK2019: 无法解析的外部符号 "public: static struct QMetaObject const SortDialog::staticMetaObject" (?staticMetaObject@SortDialog@@2UQMetaObject@@B),该符号在函数 "public: static class QString __cdecl SortDialog::tr(char const *,char const *,int)" (?tr@SortDialog@@SA?AVQString@@PBD0H@Z) 中被引用
1>C:\Users\HP\Desktop\qt\0\Win32\Release\\0.exe : fatal error LNK1120: 4 个无法解析的外部命令
三、重新建个工程->像原来那样把源文件,头文件,修好过的ui文件加入工程->编译->仍然成功运行!
希望大家帮忙!谢谢!!
Qt5?ui?编译错误?链接错误
[解决办法]