1. 建立一个console工程

QT -= gui

CONFIG += c++ console
CONFIG -= app_bundle # The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0. SOURCES += \
main.cpp \
baseclass.cpp \
subclass.cpp # Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target HEADERS += \
baseclass.h \
subclass.h

2. 添加baseClass

baseclass.h

#ifndef BASECLASS_H
#define BASECLASS_H #include "QObject" class baseClass: public QObject
{
Q_OBJECT public:
baseClass(QObject * p = );
virtual ~baseClass() {} signals:
void signal1(); }; #endif // BASECLASS_H

baseClass.cpp

#include "baseclass.h"

baseClass::baseClass(QObject * p) : QObject(p)
{ }

subclass.h

#ifndef SUBCLASS_H
#define SUBCLASS_H #include "baseclass.h" class subClass: public baseClass
{
Q_OBJECT public:
subClass(QObject * p = );
virtual ~subClass() {}; //signals:
void signal2(); }; #endif // SUBCLASS_H

subclass.cpp

#include "subclass.h"

subClass::subClass(QObject * p) : baseClass (p)
{ }

main.cpp

#include <QCoreApplication>
#include "subclass.h" int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv); subClass * sub = new subClass(); return a.exec();
}

编译报错:

testQtSignalBug/subclass.cpp:: error: undefined reference to `vtable for subClass'

collect2: error: ld returned  exit status

解决办法:注释掉subclass.h里的Q_OBJECT 宏

原因:未知

qt undefined reference to `vtable for subClass'的更多相关文章

  1. Qt :undefined reference to vtable for "xxx::xxx"

    现象: 类加上宏 Q_OBJECT 就会报错 :undefined reference to vtable for "xxx::xxx" 解决方法: 重新 qmake 其他情况,查 ...

  2. (转) Qt 出现“undefined reference to `vtable for”原因总结

    由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道. 今天我 ...

  3. Qt经典出错信息之undefined reference to `vtable for classname

    原文链接:Qt经典出错信息之undefined reference to `vtable for classname 这个出错信息太常见了,用过Qt两个月以上的朋友基本上都能自己解决了,因为太经典了, ...

  4. Qt的“undefined reference to `vtable for”错误解决(手动解决,加深理解)

    使用QT编程时,当用户自定义了一个类,只要类中使用了信号或槽. Code::Blocks编译就会报错(undefined reference to `vtable for). Google上有很多这个 ...

  5. Qt错误:类中使用Q_OBJECT宏导致undefined reference to vtable for "xxx::xxx"错误的原因和解决方法

    在进行Qt编程的时候,有时候会将类的定义和实现都写在源文件中,如果同时在该类中使用信号/槽,那么可能就会遇到 undefined reference to vtable for "xxx:: ...

  6. Qt 出现“undefined reference to `vtable for”

    在QT中定义了一个线程类,继承自QThread, 在类中未加 Q_OBJECT 时编译正常,加入后报错如下: undefined reference to `vtable for myThread' ...

  7. Qt - 错误总结 - 在自定义类头文件中添加Q_OBJECT 编译时报错(undefined reference to ‘vtable for xxThread)

    错误提示:在添加的QThread子类头文件添加Q_OBJECT时,编译程序,出现"undefined reference to 'vtable for xxThread'"错误提示 ...

  8. Qt 编译出错“undefined reference to `vtable for”

    1. 有时,如果将某个类改为继承自QObject类(以前不继承自该类),编译时会出错. 解决: clean Project, run qmake, rebulid都运行一遍,好了! 因为qmake生成 ...

  9. C++:undefined reference to vtable 原因与解决办法[转]

    [转]undefined reference to vtable 原因与解决办法 最近在写一套基础类库用于SG解包blob字段统计,在写完了所有程序编译时遇到一个郁闷无比的错误: MailBox.o( ...

随机推荐

  1. 【NOIP2014模拟11.3】蛋糕

    题目 今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力.现在Bessie要把蛋糕横 ...

  2. electron-vue 更新 使用electron-update的版本

    electron-vue使用的electron版本比较老,用最新的electron-update会报错 我用这个版本成功 "electron-updater": "^3. ...

  3. 按键——Button事件监听器

    button_1.setOnClickListener(new View.OnClickListener() {               @Override    public void onCl ...

  4. 在Eclipse中搭建Android开发环境

    忙活了两天多的时间,终于在Eclipse中成功搭建了Android开发环境,着实不易啊!! 原本我用的编译器是MyEclipse的,但是从网上找不到如何在MyEclipse中搭建环境,于是乎就换了Ec ...

  5. sqli-labs(27)

    0X01 先查询闭合 ?id=' 报错 ?id='' 正确 知道是’的闭合语句 0X02那么开始我们的注入之旅 空格过滤了 尝试一下%0a绕过  #也被过滤了 那么用and '1'='1构造闭合 ?i ...

  6. gitblit 数据迁移(复制)

    gitblit 数据迁移 完全拷贝方式: 将原服务器上的gitblit的安装目录.数据目录等相关目录拷到另一台服务器上即可,这样启动方式和使用端口及数据和原服务上的一模一样.(因为gitblit是不用 ...

  7. webpack插件之webpack-dev-server

    webpack插件之webpack-dev-server webpack插件 自动化 webpack-dev-server  现在只需要使用 npm run build指令就可以自动打包,并自动处理好 ...

  8. leetcode-mid-sorting and searching -347. Top K Frequent Elements

    mycode   71.43% class Solution(object): def topKFrequent(self, nums, k): """ :type nu ...

  9. 如何将post请求转换成put和delete请求

    <form:form action="${pageContext.request.contextPath}/emp" method="POST" mode ...

  10. 数据结构和算法(Java版)快速学习(数组Array)

    Java数组 在Java中,数组是用来存放同一种数据类型的集合,注意只能存放同一种数据类型. 用类封装数组实现数据结构 数据结构必须具有以下基本功能: ①.如何插入一条新的数据项 ②.如何寻找某一特定 ...