您尚未登录。

楼主 # 2022-03-16 11:50:36

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

mingw qt,编译工程找不到moc_xxx.cpp文件。

该工程用到了qtpropertybrowser库,结果编译qtpropertybrowser.cpp时,报错找不到moc_qtpropertybrowser.cpp文件。该文件最末端有个#include "moc_qtpropertybrowser.cpp",搜了工程目录,缺使没生成该文件。

而且,这个工程之前是能编译通过的,我前天整理电脑,把QT卸载了,重装到其它盘符后,就出现这个问题了。

离线

楼主 #1 2022-03-16 14:50:29

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: mingw qt,编译工程找不到moc_xxx.cpp文件。

虽然最后莫名其妙的通过编译了,但是没明白具体原因。
我以为是qt版本的问题,尝试了32位的qt5.15,5.14,5.12等多个版本,一样的问题。
后来卸载qt,清除c盘用户目录下的qtproject文件夹。重装qt,结果问题依旧。
然后是单独编译Libs.pro,单独编译qtpropertybrowser.pro,仍是报错,不过此时没注意报错是否还是之前的。
我就怀疑我这个机子上的qt不能生成moc文件,于是qt creator上下载例程,编译,通过,可以运行...
然后又编译了libs.pro及qtpropertybrowser.pro,仍报错,不过此时注意到报错不是缺少moc文件,而是个好像是缺少可执行啥的,没明白。
但是,再搜索工程目录,竟然有那几个moc文件了。
然后重新编译整个工程,竟然通过了。

离线

楼主 #3 2022-03-17 15:20:07

Gentlepig
会员
注册时间: 2018-10-24
已发帖子: 1,363
积分: 1323.5

Re: mingw qt,编译工程找不到moc_xxx.cpp文件。

cgpsky 说:

Qmake 下。 检查那个类文件 是否有Q_OBJECT宏, 如果还是没有。 先去掉Q_OBJECT宏, 编译后。再加上Q_OBJECT 宏再编译

感谢答复。
问题是不知道怎么操作的,然后就又能通过编译了。

检查了qtpropertybrowser.h,里边有多个类定义,部分类里加了Q_BOJECT宏。
对应的qtpropertybrowser.cpp的最后一行,有个#include "moc_qtpropertybrowser.cpp",就在这一行报的错误。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn