现象: 类加上宏 Q_OBJECT 就会报错 :undefined reference to vtable for "xxx::xxx" 解决方法: 重新 qmake 其他情况,查看虚函数是否有实现.…
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 consu…
在进行Qt编程的时候,有时候会将类的定义和实现都写在源文件中,如果同时在该类中使用信号/槽,那么可能就会遇到 undefined reference to vtable for "xxx::xxx"的链接错误,这是因为qmake默认不会处理cpp文件中的 Q_OBJECT导致链 接的时候缺少相应的 moc_xxx.h文件,此时,可以先用moc处理该cpp文件:moc xxx.cpp,然后讲生成的moc_xxx.h文件 包含到cpp文件中,问题就可以解决…
转载自 居家懒人 http://www.cnblogs.com/JD85/archive/2012/09/17/2688128.html 加入写了新场景SecondScene,结果在cpp文件里类名地方报错说undefined reference to `vtable for SecondScene', 很简单,貌似是每个新场景都要先注册一下,找到jni-->Classes目录下的Android.mk文件,在 LOCAL_SRC_FILES := AppDelegate.cpp \ HelloW…
由于Qt本身实现的机制所限,我们在使用Qt制作某些软件程序的时候,会遇到各种各样这样那样的问题,而且很多是很难,或者根本找不到原因的,即使解决了问题,如果有人问你为什么,你只能回答--不知道. 今天我在这里列举的问题也是再编写Qt程序时,总是遇到的问题,问题普遍,而答案却不唯一,解释这一个问题的说法很多,往往只适合某一种情况,因为这个错误太笼统了,它就是-- “undefined reference to `vtable for”可能你看着很熟悉,似乎在c++程序中也遇到过这个问题,你说对了,有…
原文链接:Qt经典出错信息之undefined reference to `vtable for classname 这个出错信息太常见了,用过Qt两个月以上的朋友基本上都能自己解决了,因为太经典了,可以给新手参考. 出错信息一般类似:undefined reference to `vtable for classname MyWidget`在执行make命令后出现. 出错原因是在定义类的时候为了能使用signals和slot,在类定义的后面加了Q_OBJECT引起. 因为Q_OBJECT是一个…
在QT中定义了一个线程类,继承自QThread, 在类中未加 Q_OBJECT 时编译正常,加入后报错如下: undefined reference to `vtable for myThread' 在串口下,手动make,无错误. 百度后得知: 一:预编译器打开宏Q_OBJECT,声明若干个由moc处理(implement)的成员函数. 如果得到类似于“undefined reference to vtable for LcdNumber”的编译错误(if you get compiler e…
1. 有时,如果将某个类改为继承自QObject类(以前不继承自该类),编译时会出错. 解决: clean Project, run qmake, rebulid都运行一遍,好了! 因为qmake生成Makefile的时候,这个类的头文件中并没有Q_OBJECT,所以在相应的Makefile里面并没有用moc xxx.h命令,最终导致链接失败.重新运行qmake,问题解决. 在查找解决方法的时候,附带发现一点:qmake 不会处理.cpp文件里的Q_OBJECT,所以,如果在.cpp文件中有它的…
使用QT编程时,当用户自定义了一个类,只要类中使用了信号或槽. Code::Blocks编译就会报错(undefined reference to `vtable for). Google上有很多这个问题的回答,但很多说的很模糊,或者根本就不可行. 其实,QT有自己的编译方法. 不用IDE写一个类,QT的编译步骤是: 1, cd 源代码目录 2, qmake -project 3, qmake project_name.pro 4, make (如果你装的是minGW的话,就用minGW-mak…
错误提示:在添加的QThread子类头文件添加Q_OBJECT时,编译程序,出现"undefined reference to 'vtable for xxThread'"错误提示.原因:不详解决方案:清理项目,执行qmake,然后运行,错误提示消失.…
[转]undefined reference to vtable 原因与解决办法 最近在写一套基础类库用于SG解包blob字段统计,在写完了所有程序编译时遇到一个郁闷无比的错误: MailBox.o(.text+0x124): In function `CMailBox::CMailBox[not-in-charge](CMmogAnalyseStatManager*)': ../src/MailBox.cpp:27: undefined reference to `CSgAnalyseStat…
在win+CLion上进行远程qt开发时碰到以下错误: 错误提示: undefined reference to `vtable for MainWindow' 原因:源文件的目录结构有问题?? 解决方法: 将目录结构不分为include.lib等.直接放在一个文件下,不论是*.ui.*.cpp.*.h等. 2019.10.15更新: 最新一次发生该情况时,试着将含有qt特征文件(含有qt的mainwindow等特征性)放置在src下,而include.lib等另做处理,程序编译无错误.参考我的…
http://blog.csdn.net/chenlong12580/article/details/7431104…
可能原因:自定义类中使用自定义槽和信号,但是没有在类中增加Q_OBJECT, 解决办法:在类中增加Q_OBJECT,删除编译产生的文件进行重新编译 具体原因分析如下 博主原文…
在编译程序的时候遇到此误,在google上查,很多地方都说是因为虚基类里面的虚拟析构函数没有提供实现导致的.但是我的已经提供了实现,也不行.最后发现是其他没有提供实现的虚函数造成的.所以,在一个虚基类里,如果不提供函数的缺省实现,一定要定义成纯虚函数,否则就会造成此问题. #include <iostream> using namespace std; #define pi 3.14 class Shape{  public:   static double sum;   virtual vo…
MyColor是新建的类,原因是使用了QObject,但是系统没有反应过来 解决:从工程删除,再添加进去[QtCreator]…
错因:某个类声明了一个函数但是没有定义就直接使用.…
出现如下错误: 解决办法 当类中加入Q_OBJECT,需要手动删除中间文件,再构建…
undefined reference to typeinfo - C++ error message There are some compiler and loader error messages that shout obviously as to their cause, but there are others that simply don't give the new user much of an indication as to what's really wrong. An…
一般来说,写C++程序时推荐“类的声明和实现分离”,也就是说一个类的声明放在example.h文件中,而这个类的实现放在example.cpp文件中,这样方便管理,条理清晰. 但是如果类的声明用到了模板template,则类的声明与实现分离是不可取的,因为这个GCC会报错,比如undefined reference to XXX等错误. 所以如果用到了template需要把函数的实现放到类的声明文件中. 附:出错的编译日志如下:…
Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找 由 环境变量 LIBRARY_PATH 指定的路径,使用":"分割从左到右依次查找 /etc/ld.so.conf 指定的路径顺序 /lib 和 /usr/lib (64位下是/lib…
原文地址:http://blog.csdn.net/cserchen/article/details/5503556 Linux下编译程序时,经常会遇到“undefined reference to XXX” 报错, 这里总结一些可能的原因和解决方案,给需要的朋友: 说道undefined reference error,先提一下Linux gcc链接规则: 链接的时候查找顺序是: -L 指定的路径, 从左到右依次查找由 环境变量 LIBRARY_PATH 指定的路径,使用":"分割从…
cmake没怎么用,主要觉得Clion很好用,但是默认clion使用的是cmake.再说一句clion是linux平台上很好用,个人强推. 当你使用clion的时候,如果使用了thread cstl等库的时候就会出现undefined reference to xxx等问题. 解决方法: 在cmake最后一行添加TARGET_LINK_LIBRARIES()把所依赖的第三方库放到这里就可以了. 可以参这个文章添加动态连接库和静态连接库 动态库的添加: link_directories(${PRO…
编译成功了,链接的时候出现了这个报错 产生”undefined reference to `typeinfo for xxx’“最常见的原因就是基类的虚函数未实现了. 由于C++类的实现可以分布在多个源文件中,所以生成目标文件时,基类的虚函数没有定义是不会报错的. 但是链接成可执行文件时,需要将虚函数的信息放进typeinfo中,这个时候虚函数未实现就会引发这个错误. .....实在不行,改成纯虚函数就好了.…
moc_fortunethread.cpp:100: error: undefined reference to `FortuneThread::GetToParentThread(QString, QString)' collect2.exe:-1: error: error: ld returned 1 exit status ////////////////////////// 信号曹未添加实现而引起的错误,添加实现后错误立即消失.holy shit !!!…
在Vivado SDK进行软件设计的时候,如调用math.h函数的时候出现 undefined reference to `sqrt' ,原因有以下情况: 1.没有添加需调用的头文件 解决方案:添加对应的头文件,#include "math.h" 2.没有添加库函数(比较容易被忽略的一个步骤) 解决方案是:点击工程文件,右键,选择Properties 如下图:选择 C/C++ Build 下的Setting 选择:Libraries 添加m文件 因为sqrt()位于math.h函数里…
昨天写了个广义表,写完后用clang++编译,结果给我报了一个这样的错 tanglizi@archlinux ~/Code/cpp/DS/genlist $ clang++ main.cpp genlist.cpp -o main /tmp/main-9e993f.o: In function `GenList<long>::GenList(std::__cxx11::basic_string<char, std::char_traits<char>, std::alloca…
错误的原因是我使用到了 QT Widgets 模块中的东西,但是makefile的链接的参数中没有 widgets.其实官网上提到了这个: http://doc.qt.io/qt-5/qtwidgets-index.html 解决的方法是手动修改你的 .pro 文件,在里面添加下面这句: QT += widgets 如果出现类似的 undefined reference 这种错误应该也是在程序的链接阶段没有找到相应的函数或方法,解决方法也应该类似.…
出现的错误: undefined reference to `_imp___ZN10QTcpSocketD1Ev' undefined reference to `_imp___ZN10QTcpSocketC1EP7QObject' undefined reference to `_imp___ZN10QTcpSocketD1Ev' undefined reference to `_imp___ZN10QTcpSocketD1Ev' undefined reference to `_imp___…
QT添加自定义信号后编译出现undefined reference 这是需要重新生成qmake: build --->run qmake…