Qt5 在添加 Q_OBJECT 后发现编译出错的原因

在 Qt 编写过程中,如多线程使用信号槽时,需要添加 Q_OBJECT,但是在添加之后发现编译老会出错。如下:

class ThreadSxxx : public QThread
{
    Q_OBJECT

public:
    ThreadSxxx();

signals:
    signal_trig();
}

编译后提示 undefined reference to vtable for "xxxx" 的错误问题。

出现该错误的原因是此时的 Q_OBJECT 是半途加入的,我们需要让项目重新加载编译,解决的办法是直接在 .pro 文件中随便改动一点东西,即使是随便加个空格都可以,此时再编译就可以通过。

参考自:blog.csdn.net/xzq413520903/article/details/79554318

原文地址:https://www.cnblogs.com/GyForever1004/p/9086048.html

时间: 2024-10-14 01:39:15

Qt5 在添加 Q_OBJECT 后发现编译出错的原因的相关文章

U3D 2D中给精灵添加刚体后 发现精灵会倒 ..

U3D 2D中给精灵添加刚体后 发现精灵会倒 .. 这是因为 没有禁用z轴上面的刚体力造成..只有把刚体上面的 z轴刚体力 冻结掉就可以了 方法一: 红框中Z 复选框勾起来就可以了 方法二 : void Awake() { GetComponent<Rigidbody2D>().freezeRotation = true; }

添加cordova-plugin-file-opener2后,打包出错

原文:添加cordova-plugin-file-opener2后,打包出错 报错如下: * What went wrong: Execution failed for task ':app:processDebugResources'.> Failed to execute aapt * Try:Run with --stacktrace option to get the stack trace. Run with --info or --debugoption to get more lo

WINCE6.0新建工程编译出错的问题

作者:LoongEmbedded(kandi) 时间:2011.8.13 类别:WINCE系统开发 ********************************LoongEmbedded******************************** 基于WINCE6.0系统,根据PDA模板新建了工程之后,现把遇到的问题和解决的方法记录一下 1.     编译系统找不到atls.lib 这里要特别注意的是,发生类似这样的错误的时候,如果从\WINCE600\build.err文件来找错误的原

QWidget窗体中使用Q_OBJECT后无法添加背景图片或背景色

在继承自QWiget的窗体中,设置背景图片或背景色比较简单的方法是使用setStyleSheet()函数,比如在构造函数中可以这样来设置背景图片: this->setStyleSheet("border-image: url(:/background.jpg)"); 但是如果窗体类中使用了Q_OBJECT,则这种方法没有效果,解决办法是使用setAttribute()函数,如下: this->setAttribute(Qt::WA_StyledBackground); th

maven依赖本地非repository中的jar包-依赖jar包放在WEB-INF/lib等目录下的情况客户端编译出错的处理

maven依赖本地非repository中的jar包 http://www.cnblogs.com/piaolingxue/archive/2011/10/12/2208871.html 博客分类: MAVEN 今天在使用maven编译打包一个web应用的时候,碰到一个问题: 项目在开发是引入了依赖jar包,放在了WEB-INF/lib目录下,并通过buildpath中将web libariary导入. 在eclipse中开发没有问题,但是使用maven编译插件开始便宜总是报找不到WEB-INF

“linker command failed with exit code 1”文件路径发生改变使编译出错时

出现( linker command failed with exit code 1)错误 这种问题,通常出现在添加第三方库文件或者多人开发时. 这种问题一般是找不到文件而导致的链接错误. 我们可以从如下几个方面着手排查. 1.以如下错误为例,如果是多人开发,你同步完成后发现出现如下的错误. Undefined symbols for architecture armv7: "_OBJC_CLASS_$_MyPageLogViewController", referenced from

实例详解:反编译Android APK,修改字节码后再回编译成APK

本文详细介绍了如何反编译一个未被混淆过的Android APK,修改smali字节码后,再回编译成APK并更新签名,使之可正常安装.破译后的apk无论输入什么样的用户名和密码都可以成功进入到第二个Activity. 有时难免要反编译一个APK,修改其中的若干关键判断点,然后再回编译成一个全新的可用的apk,这完全是可实现的.若要完成上述工作,需要以下工具,杂家后面会把下载链接也附上.这些软件截止本文发布时,经过杂家确认都是最新的版本. 1.APK-Multi-Toolv1.0.11.zip 用它

用VS添加引用dll也会出错?你遇到过吗?

使用C#开发,我们经常引用各种类库,我们通常是在Visual Studio中引用上面单击右键,添加引用...,浏览...,选择dll,确定,但是这样做会不会有什么问题呢?当然,有人到现在为止没有碰到过问题,下面来一个实例,来说一下其中可能出现的问题.  一.搭建Demo 这里就以SQLite数据库为例吧,我们新建一个控制台项目,名字就叫做SQLiteDemo吧,然后在项目中添加Lib文件夹,放入SQLite要用的dll和xml配置文件,然后添加对System.Data.SQLite.dll的引用

CCS4.2编译出错提示与修改方法

可能需要的其他步骤 有时在迁移过程中向导并不会冒险去改动一些具体的内容,这时可能就需要您多加留意并解决这类问题.在大多数情况下,需要执行的更改位于内部的源文件或链接器命令文件中:由于向导在迁移过程中采用了保守的做法,因此不会直接修改这些类型的文件. ? 1. 例如,将会显示如下的消息框,<migration.log> 文件位于项目目录下.强烈建议打开此日志文件检查是否存在任何问题. 图 6:迁移警告 ? 2. CCSv3.3 中有些项目拥有自动导入的隐式包含目录,会引发生成错误.如果遇到这种情