pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

Q_OBJECT 拋出“對 vtable 的未定義引用"錯誤

Q_OBJECT throwing #39;undefined reference to vtable#39; error(Q_OBJECT 拋出“對 vtable 的未定義引用錯誤)
本文介紹了Q_OBJECT 拋出“對 vtable 的未定義引用"錯誤的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我在 Windows 7 Ultimate 32 位上使用 Qt Creator 2.0.1 和 Qt 4.7.0(32 位).

I'm using Qt Creator 2.0.1 with Qt 4.7.0 (32 bit) on Windows 7 Ultimate 32 bit.

考慮以下代碼,這是產生錯誤的最低限度:

Consider the following code, which is a minimum to produce the error:

class T : public QObject, public QGraphicsItem
{
    Q_OBJECT

public:
    T() {}

    QRectF      boundingRect() const {return QRectF();}
    void        paint(QPainter *painter, const QStyleOptionGraphicsItem *option,
                      QWidget *widget) {}
};

int main()
{
    T t;
    return 0;
}

以上代碼片段導致以下鏈接器錯誤:

The above code fragment causes the following linker errors:

在函數‘T’中:

未定義的對`vtable for T'的引用

undefined reference to `vtable for T'

未定義的對`vtable for T'的引用

undefined reference to `vtable for T'

在函數`~T'中:

未定義的對`vtable for T'的引用

undefined reference to `vtable for T'

未定義的對`vtable for T'的引用

undefined reference to `vtable for T'

如果我注釋掉包含 Q_OBJECT 的行,它編譯正常.我需要帶有 QGraphicsItem 的信號和插槽,所以我需要 Q_OBJECT.

If I comment out the line that contains Q_OBJECT, it compiles fine. I need signal and slots with QGraphicsItem so I need Q_OBJECT.

代碼有什么問題?謝謝.

What is wrong with the code? Thanks.

推薦答案

這是因為 MOC 生成的單元未包含在鏈接過程中.或者它根本沒有生成.我要做的第一件事是將類聲明放在一個單獨的頭文件中,也許構建系統沒有掃描實現文件.

It is because the unit generated by MOC isn't included in the linking process. Or maybe it isn't generated at all. The first thing I'd do is to put the class declaration in a separate header file, perhaps the build system isn't scanning implementation files.

還有一種可能是這個類曾經不屬于Qt元對象系統(也就是說,它沒有Q_OBJECT或者可能根本沒有繼承自QObject),所以需要再次運行qmake才能順序為 MOC 創建必要的規則.強制運行 qmake 的最簡單方法是對項目文件進行一些微不足道的更改以更新其時間戳,例如添加然后刪除一些空格.或者,如果您使用的是 Qt Creator,則只需從項目上下文菜單中選擇運行 qmake"即可.

Another possibility is that the class in question once didn't belong to Qt meta object system (that is, it had no Q_OBJECT or maybe didn't inherit from QObject at all), so qmake needs to be run again in order to create the necessary rules for MOC. The easiest way to force qmake to be run is to make some insignificant changes to the project file to update its timestamp, like adding and then removing some white space. Or, if you're using Qt Creator, then just select "Run qmake" from the project context menu.

這篇關于Q_OBJECT 拋出“對 vtable 的未定義引用"錯誤的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 护栏打桩机-打桩机厂家-恒新重工| 玉米加工设备,玉米深加工机械,玉米糁加工设备.玉米脱皮制糁机 华豫万通粮机 | 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 精密交叉滚子轴承厂家,转盘轴承,YRT转台轴承-洛阳千协轴承 | 贵州成人高考网_贵州成考网 | 阳光1号桔柚_无核沃柑_柑橘新品种枝条苗木批发 - 苧金网 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 四川职高信息网-初高中、大专、职业技术学校招生信息网 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 胃口福饺子加盟官网_新鲜现包饺子云吞加盟 - 【胃口福唯一官网】 | 扒渣机,铁水扒渣机,钢水扒渣机,铁水捞渣机,钢水捞渣机-烟台盛利达工程技术有限公司 | 电动不锈钢套筒阀-球面偏置气动钟阀-三通换向阀止回阀-永嘉鸿宇阀门有限公司 | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 | 聚氨酯保温钢管_聚氨酯直埋保温管道_聚氨酯发泡保温管厂家-沧州万荣防腐保温管道有限公司 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 黄石妇科医院_黄石东方女子医院_黄石东方妇产医院怎么样 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 污水/卧式/潜水/钻井/矿用/大型/小型/泥浆泵,价格,参数,型号,厂家 - 安平县鼎千泵业制造厂 | 权威废金属|废塑料|废纸|废铜|废钢价格|再生资源回收行情报价中心-中废网 | 电动打包机_气动打包机_钢带捆扎机_废纸打包机_手动捆扎机 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司_龙门加工中心-数控龙门加工中心厂家价格-山东海特数控机床有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 公交驾校-北京公交驾校欢迎您! 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 | 临沂招聘网_人才市场_招聘信息_求职招聘找工作请认准【马头商标】 | 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 镀锌方管,无缝方管,伸缩套管,方矩管_山东重鑫致胜金属制品有限公司 | 焊接减速机箱体,减速机箱体加工-淄博博山泽坤机械厂 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 壹车网 | 第一时间提供新车_资讯_报价_图片_排行! | 卧涛科技有限公司科技项目申报公司|高新技术企业申报|专利申请 |