gpt4 book ai didi

c++ - 是什么导致了这个 QT 4.7.3 错误?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:20:05 25 4
gpt4 key购买 nike

我有一个程序可以在带有 QT 4.5 版的 OpenSuse 11.2 中正常编译。但是,当我使用带有 QT 4.7.3 的 OpenSuse 11.4 编译相同的程序时,我收到此错误消息:

"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、signal:、slot: 等定义来实现这一点

此代码完全依赖于用于创建此代码的 Qt 版本。在某些情况下,即使对于配置了不同选项集的相同版本的 Qt 库,此代码也是完全不兼容的。

即使对于 .pro 中的某些更改,这种情况也是如此,例如,使用 CONFIG += no_keywords 会导致 moc 生成不同的粘合代码,从而允许 Qt 与其他库一起工作,例如 boost,它使用与 Qt 相同的关键字提供信号槽机制。

因此,简而言之,每当您需要针对不同的 Qt 库编译 Qt 项目时,请确保执行以下操作:1.运行:make distclean2.运行:qmake3.运行:制作

这将始终为您提供干净的构建树。

关于c++ - 是什么导致了这个 QT 4.7.3 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com