Qt / C++常见小问题汇总(一)

一、简述

时隔两个月后的第一篇文章。

在日常Coding中可能会遇到各种问题,但是遇到之后解决了并没有及时的记录,导致再次遇到相同或者类似问题时再次懵逼,所以记录下这些问题还是很有帮助的。今天就简单讲述两个常见的小问题,以及解决方案。以此开篇Qt/C++常见小问题汇总系列.

问题列表

问题一:

No relevant classes found. No output generated.

问题二

There’s no Qt version assigned to this project for platform Win32.


二、问题解析

问题一、No relevant classes found. No output generated.

当我们在用VS编译程序时,VS输出栏目中出现了上方的提示,说明你的文件格式有问题,可能会导致你编译不过。下面就给一个小示例看一下效果。


一般情况下我们新建一个继承QObject的Qt类,都会附带 Q_OBJECT 宏定义,这个宏定义非常重要,对于这个宏定义具体代表什么意思,大家可以百度一下。加上Q_OBJECT 宏定义之后,Qt会自动生成moc_ClassName.cpp文件(这里也不在解释这个文件的具体作用,大家可以自行百度)。我们可以看到下图中的moc_MyWidget.cpp,在程序未编译之前,这个文件其实并不存在。

这里写图片描述

我们双击这个文件,VS提示如下:

这里写图片描述

项目目录下也没有这个文件。

这里写图片描述

我们开始编译该工程,然后moc_mywidget.cpp,显示如下,这个文件的内容就是Qt元对象的编译器生成的。这里写了这么多,并未发现任何问题。

这里写图片描述

我们改变mywidget.h的编码格式,点击确定并保存。然后重新编译。

这里写图片描述

这里截取出编译输出。

这里写图片描述

很明显,我们看到了这条编译输出语句,没有找到相关的类,没有文件生成。

mywidget.h(0): Note: No relevant classes found. No output generated.

我们再次双击moc_mywidget.cpp文件,发现这里面空空如也,也就是说我们修改了mywidget.h的编码格式导致未生成正确的moc_mywidget.cpp文件。

这里写图片描述

上面是我主动修改了编码格式导致编译失败。一般情况下,我们可能会从其他地方附加一个类的.h和.cpp文件,如果这个.h文件的编码格式是有问题的,就会导致如上的错误,那么我们可以看一下我们项目中其他文件是什么编码格式的,或者重新添加一个Qt类,然后查看新建类.h文件的编码格式,然后将有问题的文件统一编码格式就可以了。


点击高级保存选项修改文件的编码格式。
这里写图片描述

修改为正确的编码格式。

这里写图片描述


问题二、There’s no Qt version assigned to this project

这里写图片描述

对于这个问题,我们可以检查如下两个配置是否设置正确。

(1)Qt Options

这里写图片描述这里写图片描述

(2)Qt Project Settings

这里写图片描述

这里写图片描述

  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值