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 宏

原因:未知

最新文章

  1. redis成长之路——(二)
  2. 【2016-11-5】【坚持学习】【Day20】【通过委托事件,关闭窗口】
  3. SharePoint常用目录介绍
  4. JAVA 1.2(原生数据类型 Primitive Data Type)
  5. POJ3083Catch That Cow[BFS]
  6. 2016huasacm暑假集训训练三 B-Frogger
  7. CentOS学习笔记--基本命令--文件与目录管理
  8. 纯CSS3代码实现简单的图片轮播
  9. PHP学习心得(四)——基本语法
  10. 再次分享 pyspider 爬虫框架 - V2EX
  11. Eclipse 编译StanfordNLP
  12. C# .net 如何根据访问者IP获取所在地区
  13. UI基础:UILabel.UIFont
  14. 解决ZF2_PATH environment
  15. Java IO 转换流 字节转字符流
  16. vuecli3 项目添加配置文件以及使用@映射、代理
  17. MYSQL数据库常用操作命令
  18. Linux下SSL证书申请以及配置到Nginx
  19. node-lessons
  20. 导入txt文件到SQL SERVER 2008

热门文章

  1. JAVA笔记20-容器之四Map接口、自动打包、泛型(重要)
  2. shell练习--PAT题目1004: 成绩排名 !(失败案例,shell运行超时)
  3. Winserver-禁止程序启动
  4. 代码检测docker-sonarqube
  5. PHP基础教程 php 网络上关于设计模式一些总结
  6. python实现的ocr接口
  7. Elastic-Job快速入门
  8. Cisco基础(三):HSRP配置、三层交换配置HSRP、STP的配置、三层交换配置STP
  9. sql语句的使用经验 postgresql
  10. Vue中computed、methods、watch的联系和区别