其他分享
首页 > 其他分享> > qt元对象编辑器

qt元对象编辑器

作者:互联网

moc(Meta-Object Compiler,元对象编辑器):
qt不是标准的c++语言,而是对其进行了一定程度的扩展,从qt新增加的关键字signals、slots等就可以看出来,因此在qt将源代码交给标准c++编译器之前,需要事先将这些扩展的语法去掉,完成这一工作的就是moc,因此qt的编译速度会比较慢。
moc在qt将源代码交由标准c++编译器之前,会先分析源文件,如果发现一个头文件中包含Q_OBJECT,就会生成一个"moc_"前缀的cpp文件,这个文件包含了Q_OBJECT的实现代码,同其他的源文件一同参与编译。(因此,包含Q_BJECT的类声明在cpp中,moc是不会处理的,这样做会出现链接错误)

注意:包含Q_OBJECT的头文件中,包含其他的类名称,要使用类的前置声明或者include(include最好在预编译头中),因为该头文件要生成moc_前缀cpp,需要认识里面的类名称。(见类的前置声明)

标签:头文件,qt,对象,OBJECT,c++,cpp,编辑器,moc
来源: https://blog.csdn.net/qq_37463580/article/details/112064889