在编写qt代码的过程中间,突然有一次点击“生成解决方案”后,发现未能正确生成,出现了链接错误,错误内容正是常见的“无法解析的外部文件”错误——一般来讲都是因为库的问题,即没有正确加入库文件。但是前几分钟我还正确生成过,在此之间并未有任何库文件的添加。
仔细检查配置文件与命令行等内容,没有发现有什么问题。经过多方查证,终于发现工程解决方案目录下的debug文件中,一个moc文件被“从生成中排除”,如下图1所示:
而正常的moc文件应该是不被排除的,如下图2所示:
找到问题所在!那么解决方法很简单,将此moc文件移除(不删除),然后重新添加,即可成功编译、运行。
在此工程接下来的开发中,一旦某个cpp文件被修改,就会发生这样的症状。由于项目较为紧张,我并未从根本上追究这个问题,只是每次手动进行移除-添加的操作。接下来我会从根本上研究这个问题发生的原因。