gpt4 book ai didi

qt - 神秘的Qt未定义接口(interface): investigation

转载 作者:行者123 更新时间:2023-12-02 10:42:54 25 4
gpt4 key购买 nike

我正在编写一个带有插件的典型 Qt (4.8.2) 应用程序。其中一个插件包括几个自定义接口(interface),通过调用 Q_INTERFACE 宏。这些接口(interface)位于项目可见的 .h 文件中(通过 .pro 包含),它们都包含对 Q_DECLARE_INTERFACES 的宏调用。

然而在编译 moc文件我得到一个 未定义的接口(interface)错误 在插件的主 .h 文件中。它没有告诉我是哪个,它只指定了第一行(我尝试更改顺序,但没有区别 - 除非所有接口(interface)都受到影响 - 哎呀,谁知道,可能是这种情况。)

这个插件可以在其他人的办公 table 上使用。主应用程序中的一些内容是用 Qt 5 编写的,但总是使用宏来检查版本并包含早期版本的其他代码,例如我的。这也适用于使用 4.8.2 为其插件工作的其他人的办公 table 。

在哪里寻找该错误的原因?

最佳答案

我不知道为什么我的问题被否决了,但这是答案:

通过该项目的副本,我还收到了 moc_*.cpp 文件和一些名为 的文件。 mocinclude.tmp .这是第一个 git add 错误。

但是还有另一个问题:至少后者(如果不是前者)没有被正确清理或由 Qmake/make clean 重新创建。

第三个问题:在 mocinclude.tmp 中有 绝对 最初创建项目的计算机的文件路径,这不是我的。相对路径不太容易出错。

在编译 moc 文件时,那些错误的绝对路径会导致“未定义的接口(interface)”错误(在需要接口(interface)文件的情况下,这只不过是“找不到文件”错误)。

删除所有 mocinclude.tmp (和 moc 文件)解决了我的问题。

(我还确保告诉 git 不要再跟踪它们了。)

关于qt - 神秘的Qt未定义接口(interface): investigation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49801374/

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