zoukankan      html  css  js  c++  java
  • LNK2001 无法解析的外部符号 "public: virtual struct QMetaObject

    LNK2001    无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl CViewerWidget::metaObject(void)const " (?metaObject@CViewerWidget@@UEBAPEBUQMetaObject@@XZ)
    LNK2001    无法解析的外部符号 "public: virtual void * __cdecl CViewerWidget::qt_metacast(char const *)" (?qt_metacast@CViewerWidget@@UEAAPEAXPEBD@Z)
    LNK2001    无法解析的外部符号 "public: virtual int __cdecl CViewerWidget::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CViewerWidget@@UEAAHW4Call@QMetaObject@@HPEAPEAX@Z)

     

    刚开始我以为是我的lib文件或者dll文件配置的路径不对(配置方法可见我博客——visual studio 2015导入其他qt项目的dll和lib和.h头文件

    后来我发现下面这种报错方式(即这个virtual修饰的函数是自己写的):

    LNK2001    无法解析的外部符号 "public: virtual void __cdecl CDigitalEarthView::OnInitialUpdate(void)" (?OnInitialUpdate@CDigitalEarthView@@UEAAXXZ)

    这种形式错误原因是定义的virtual 方法没有进行实现。

    但是我的那个错误提示virtual修饰的方法QMetaObject明显就是Qt的方法,后面发现在vs上建立Qt项目之后不要添加.cpp文件(如下图)

     

    现在是在Qt项目中,好像vs要对文件做一些Qt相关配置,所以不要建立C++的cpp文件,要像下面这种方式一样

     

    它会创建.h和.cpp两个文件,如果你不用.h文件,删掉就可以。

    在这样建立的cpp文件中写代码就可以了(你可以把生成的代码都删掉,写自己的就行)

  • 相关阅读:
    第五周 day5 python学习笔记
    第四周 day4 python学习笔记
    第三周 day3 python学习笔记
    常用屏幕分辨率
    学习可以借鉴的大牛们的网站
    jq动态控制样式的一些方法(批量控制样式,带参数控制样式)
    jq实现事件委托
    h5Css新加的一些新的属性
    css布局模型
    task_13
  • 原文地址:https://www.cnblogs.com/kongbursi-2292702937/p/15044522.html
Copyright © 2011-2022 走看看