• 12575阅读
  • 7回复

[提问]编译QDesigner工具时, error : Undefined interface(已解决) [复制链接]

上一主题 下一主题
离线liuxu_lx7
 
只看楼主 倒序阅读 楼主  发表于: 2011-09-28
..\formeditor\itemview_propertysheet.h(60): error : Undefined interface

一堆这样的【error : Undefined interface】。google 没找到解决方案

离线dbzhang800

只看该作者 1楼 发表于: 2011-09-28
这些东西,可能看manual来得更快

估计你忘了

CONFIG += designer

一类的东西
离线liuxu_lx7
只看该作者 2楼 发表于: 2011-09-29
回 1楼(dbzhang800) 的帖子
我用的是 VS, 就一次好奇,重新加载了 .pro 文件,之后就出现这个错误了。指向位置是 Q_INTERFACES(...) 的地方
离线liuxu_lx7
只看该作者 3楼 发表于: 2011-09-29
回 2楼(liuxu_lx7) 的帖子
手册里,我应该怎样查这个信息?能提供下,关键字么?
离线liuxu_lx7
只看该作者 4楼 发表于: 2011-09-29
回 1楼(dbzhang800) 的帖子
有新发现,一个工程里添加的头文件,在VS下,有的生成了moc_***.cpp有的,只在工程里加了一个 moc_***.cpp的名字,但是没有创建真实的文件。我手动“新建文件”并写对名字,重新编译,工程也没有对代码填写moc_***.cpp代码,它还是空文件。
你知道这是什么情况么? 有的生成,有的不生成。 反复用【添加 / 移除】到项目,也没用。同样的操作。能生成moc_***.cpp的还能,不能的就是不能。
离线liuxu_lx7
只看该作者 5楼 发表于: 2011-09-29
回 2楼(liuxu_lx7) 的帖子
现在感觉是和 【Q_INTERFACES(A)】 这里的A的【Q_DECLARE_INTERFACE(A, "**A**") 】有关

离线liuxu_lx7
只看该作者 6楼 发表于: 2011-09-29
有一篇类似的文章是这样的:

> ///////////// VisInterface.h
> class VisInterface
> {
> public:
>     virtual QList<VisFactory*> visualizations()const=0;
> };
> Q_DECLARE_INTERFACE(VisInterface, "flt.VisInterface")
> ///////////// End VisInterface.h
>
> ///////////// 3DVisPlugin.h
> class C3DVisPlugin : public QObject,public VisInterface
> {
>     Q_OBJECT
>     Q_INTERFACES(VisInterface)
> public:
>     virtual QList<VisFactory*> visualizations()const;
> };
> ///////////// End 3DVisPlugin.h
>
> I get the following two warning/errors when I try to moc the files:
> MOC VisInterFace.h
> VisInterFace.h(0): Warning: No relevant classes found. No output generated.
>
> MOC 3DVisPlugin.h
> 3DVisPlugin.h(12): Error: Undefined interface
>
> I'd greatly apppreciate any help on fixing/sidestepping this problem

You don't need to run moc on VisInterface.h, but when moc'ing 3DVisPlugin.h
you need to make sure to pass the -I option with an include path that makes
it possible for moc to find VisInterface.h as you #include it in
3DVisPlugin.h.

这个怎么理解啊?要哪个文件找到哪个文件?
离线liuxu_lx7
只看该作者 7楼 发表于: 2011-09-29
终于解决了

是由于:执行moc的时候的路径找不到。
若使用VS遇此问题,检查:

(方法:点击出问题的文件<应该是个.h头文件>, 【属性】界面应该如下。如果不是,要在【General】中设置成:Custom Build Tool(如下图))

在【Custom Build Tool】->【General】->【Command Line】中检查路径吧!(其他的也可以查查)
总之,我遇到的问题是出自这里。

PS:QtCreator我还是不会用。还是VS用着习惯。
快速回复
限100 字节
 
上一个 下一个