signal/slot机制出问题,求助

fyss 2003-08-09 07:40:53
在kdevelop中,我如果在继承QWdget及其子类时,若加了Q_OBJECT宏,在make时就会出现:
undefined reference to "vtable for MyWidget"(子类名为MyWidget)
如果去掉Q_OBJECT宏,则不会出现这个问题,但是我定义的slot及signal就不会被
发现了,请问一下这是怎么回事啊?千恩万谢!我用的是redhat9自带的kdevelop。
...全文
177 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fyss 2003-08-11
  • 打赏
  • 举报
回复
没有.不过我试过如果按我那中手工的方法,在makefile里加不加那两句都行
fierygnu 2003-08-11
  • 打赏
  • 举报
回复
你改makefile了吗?
其实不是linux下编程麻烦,是Qt麻烦。
fyss 2003-08-11
  • 打赏
  • 举报
回复
moc差不多搞定,我是先在console里面用moc编译一下.h文件,产生一个moc-name.cpp文件,然后把它
include到name.cpp里面,竟然可以了。但是又有新的麻烦了,当我自己写了一个类后,这个类没有
Q_OBJECT宏,再make的话就出现下列错误:
config.status:error:invalid argument:depfiles
我又重新config也不行,咋办,大哥?谢谢了。
你说在linux下编程怎么这么麻烦哪,怪不的大部分程序员都为windows写程序。
fierygnu 2003-08-10
  • 打赏
  • 举报
回复
肯定是没有用moc。你看我给出的连接里有怎么用的方法。
fyss 2003-08-10
  • 打赏
  • 举报
回复
大哥,我也不太清楚用没用MOC,但是我的makefile文件里有这么一句:moc=/usr/qt-3.1/bin
并且我的moc也确实在这个路径里,但是用没用到是不是应该有什么标志啊?比如说是不是应该
产生一个moc_mylabel.o的文件啊,我的确实没有产生。如果真实没有用的话,你看能不能想个
法子把它加进去。谢谢了。
fyss 2003-08-10
  • 打赏
  • 举报
回复
l
fierygnu 2003-08-10
  • 打赏
  • 举报
回复
moc的作用类似C预处理器,而你把它当作了make,当然是不行的。
参考连接里的Automating moc Usage with Makefiles部分:

如果你的类声明在头文件里,那么在Makefile里增加:
1、(注意缩进为tab,不是空格)
moc_%.cpp: %.h
moc $< -o $@
2、You must also remember to add moc_NAME.cpp to your SOURCES (substitute your favorite name) variable and moc_NAME.o or moc_NAME.obj to your OBJECTS variable.

如果你的类声明在源文件(.cpp)里:
1、在Makefile里增加:
NAME.o: NAME.moc

NAME.moc: NAME.cpp
moc -i $< -o $@
2、在NAME.cpp里的最后增加:
#include "NAME.moc"

不要砸电脑,多可惜。有问题再讨论。祝你好运。
fyss 2003-08-10
  • 打赏
  • 举报
回复
大哥,请直接告诉我该怎么做吧,受不了了,我今天搞了一上午,差点把电脑给砸了。我把Options-->KDevelop setup-->General-->make command
改成了moc(原来是gmake),编译mylabel.cpp时出了个warning:no relevant classes found.no output generated.当然再用gmake时还是出
现老问题。按那个连接里说的,是不是该这样用啊?后来我又把make command改成qmake和make还是都不行。能不能麻烦你把你是怎么moc的写一下啊。
拜托了。
fierygnu 2003-08-09
  • 打赏
  • 举报
回复
我知道了,你没有运行Qt的Meta Object Compiler,moc。你原来问的问题都是这个原因。
关于moc的应用,可以参考:http://doc.trolltech.com/3.0/moc.html

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧