关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误

Posted bobojiang2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误相关的知识,希望对你有一定的参考价值。

用CMake将Qt、VTK和ITK整合后,打开解决方案后添加新类时运行会出现“n个无法解析的外部命令”的错误。

原因是新建的类未能生成moc文件,解决办法是:

1.右键 要生成moc文件的.h文件,打开属性->常规->项类型改为自定义生成工具。

2.在新生成的选项中,填上相关内容:

 

具体如下:

命令行:"$(QTDIR)\\bin\\moc.exe"  "%(FullPath)" -o ".\\GeneratedFiles\\$(ConfigurationName)\\moc_%(Filename).cpp"

说明:Moc%27ing ImageViewer.h...       //.h文件填要编译的。

输出:.\\GeneratedFiles\\$(ConfigurationName)\\moc_%(Filename).cpp

附加依赖项:$(QTDIR)\\bin\\moc.exe;%(FullPath)

3.此时右键 .h文件编译,即可在GeneratedFiles\\debug文件夹下生成moc文件,拖入Grenerated目录下,即可。

 

 

关于moc文件,查看:qt中moc的作用

简单来说:moc是QT的预编译器,用来处理代码中的slot,signal,emit,Q_OBJECT等。
moc文件是对应的处理代码,也就是Q_OBJECT宏的实现部分。

 

 

XX.ui文件生成ui_XX.h:

当前路径命令行输入uic XX.ui -o ui_XX.h

以上是关于关于在vs2010中编译Qt项目时出现“无法解析的外部命令”的错误的主要内容,如果未能解决你的问题,请参考以下文章

vs2010+qt4编译出现error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject等错误

使用VS开发QT项目时出现找不到QT头文件

使用VS开发QT项目时出现找不到QT头文件

vs2010常见问题

vs2008添加TFS项目时出现以下错误,其中输入的TFS地址的有效的。用VS2010都可以这样添加

错误 LNK2019:使用类编译程序时出现无法解析的外部符号错误消息