解决QT单独添加ui文件后cpp文件的报错问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决QT单独添加ui文件后cpp文件的报错问题相关的知识,希望对你有一定的参考价值。

参考技术A

本博客内容如题:
当创建c++ class文件(同时加入了.h文件)后,

再单独创建同名qt designer form(.ui)后,

即使添加ui对应的头文件(#include "ui_test.h")(这种情况有个特点:添加此ui文件不会有任何输入补全提示)

相应的.cpp文件中总会报错:

曾参照此篇博客 https://blog.csdn.net/rjc_lihui/article/details/88397009
尝试解决,发现并没用。

总之就是里外不是人,谁用谁知道。

解决方法
同时新建.h .cpp .ui三种文件 方法:addNew时选择 Qt-> Qt设计师界面类

无法解析的外部符号 LNK错误总结

错误分析:

这是在链接过程中的报错,之所以在这里报错,而没有在编译过程中报错,说明包含报错方法的.h文件已经被包含了,但对应的cpp文件或者库文件链接器没有找到,所以它就很委屈地报了这个错误.

那会有哪些可能的原因导致这个问题呢?

1.缺少对应的cpp文件(比如下图中,在main.cpp中,添加了.h文件,但是项目中没有对应的函数的实现文件.一开始我对LNK报错很抵触,因为它的报错信息看着太难受了.后来发现只需要看几个关键信息就可以了:是哪个obj文件下的,报错的函数名是什么)

技术图片

 

 2.缺少对应lib文件

  2.1 lib文件压根就没有添加或者路径错误(看下VS中的库目录有没有添加,或者在代码中搜索"#pragma comment(lib,  )")

  2.2 lib文件的版本对应不上 (这个有时候很难想到,比如当时用windbg的lib,VS里的环境是32位,自己没想太多把64位的lib路径添加进去)

以上是关于解决QT单独添加ui文件后cpp文件的报错问题的主要内容,如果未能解决你的问题,请参考以下文章

添加头文件的报错failed to emit precompiled header 的解决办法

VSCode Platformio 找不到头文件解决办法

omv系统 创建文件系统的时候出现的报错, 求解答

解决maven的报错

解决Pycharm添加虚拟解释器的报错问题

Mindjet MindManager文件打开报错怎么解决