是什么导致了这个QT 4.7.3错误?
What's causing this QT 4.7.3 error?
我有一个程序,在 OpenSuse 11.2 和 QT 版本 4.5 中编译得很好。但是,当我使用 OpenSuse 11.4 和 QT 4.7.3 编译相同的程序时,我收到以下错误消息:
"This file was generated using the moc from 4.7.3. It cannot be used with the include files from this version of Qt. The moc has changed too much"
谁能告诉我发生了什么?
发生此错误是因为您正在使用在一个版本的Qt上编译的项目。造成这种情况的主要原因是Qt使用moc工具创建用于信号槽处理和其他内容的胶水代码。
Moc 通过解析头文件来查找定义,如 Q_OBJECT、信号:、插槽:等。
此代码与用于创建此代码的 Qt 版本完全绑定。在某些情况下,即使对于配置了一组不同选项的相同版本的Qt库,此代码也是完全不兼容的。
即使对于.pro中的某些更改也是如此,例如,使用CONFIG +=no_keywords会导致moc生成不同的胶水代码,允许Qt与其他库(如boost)一起使用,这些库使用相同的关键字(如Qt)提供信号槽机制。
因此,简而言之,每当您需要针对不同的Qt库编译Qt项目时,请确保执行以下操作:1.运行:使远端清洁2.运行:Qmake。3. 运行:制作
这将始终为您提供一个干净的构建树。
就我而言,这是因为我运行的是"qmake"而不是"qmake-qt4"。 "qmake"显然是Qt3。 我在Fedora Core 16上遇到了这个问题。
为什么它不是"qmake-qt3"和"qmake",这超出了我的理解。
为什么不使用新版本(在您的情况下是 4.7.3)和相应的头文件创建新的 moc。
moc ****.h -o ***.moc
相关文章:
- QT在错误的班级中寻找空位
- libssh 的函数在构建 libssh 时无法在 Qt 和 cmake 错误中找到
- 错误-我无法在VS2019中打开新的Qt项目
- 将QT项目导入Visual Studio 2019会给我带来很多LNK2001错误
- Qmake 错误:QT: 图表中的未知模块
- 项目错误:QT中的未知模块:Mac上的图表
- 编译错误 QT - 无法从类型强制转换
- 未知类型名称错误 Qt C++
- LNK2001带有静态属性和方法的错误(QT,C )
- 数据库未打开错误QT C
- 当我用口音保存JSON时,我的文字错误(QT)
- C 错误:: -1:错误:QT-CREATOR中未找到架构X86_64的符号(S)
- 键按下事件错误 Qt 实现函数时
- Qt 5测试版2,Qt Creator 2.6,MSVC错误:Qt Creaator需要一个编译器来构建.在工具包选项中
- 在Windows 8下使用Tbb构建错误Qt创建器
- 项目错误:QT 中的未知模块:webkitwidgets
- 链接错误-Qt Creator OpenCV Ubuntu
- 项目错误:QT中的未知模块:蓝牙
- 1.项目错误:QT: webkitwidgets中的未知模块
- 找不到错误 QT