• VS+QT错误集合


    主要是使用VS+QT时遇到等一些问题,现在使用等是VS2015(专业版)+ QT5.13.1

    这章主要解决遇到的无法解析等外部符号这类问题

    1、LNK2001    无法解析的外部符号 "public: virtual struct QMetaObject const * __cdecl Process::metaObject(void)const " (?metaObject@Process@@UEBAPEBUQMetaObject@@XZ)  

    LNK2001    无法解析的外部符号 "public: virtual void * __cdecl Process::qt_metacast(char const *)" (?qt_metacast@Process@@UEAAPEAXPEBD@Z)  

    遇到这种类型我查看主要是使用信号槽提示等,主要原因是没有对应的moc文件,所有需要添加moc文件进去就可以了

    生成moc文件等方式:

    ①、使用cmd进入命令行,

    ②、然后cd到Qt等安装目录bin文件里面,

    ③、然后使用moc空格+"头文件"+-o+"cpp文件"后回车,

    ④、在文件位置就会生成一个对应等moc文件

    2、LNK2019    无法解析的外部符号 "public: int __cdecl Process::slotSaveRaw(class cv::Mat,class QString,int,int)" (?slotSaveRaw@Process@@QEAAHVMat@cv@@VQString@@HH@Z),该符号在函数 "private: static void __cdecl Process::qt_static_metacall(class QObject *,enum QMetaObject::Call,int,void * *)" (?qt_static_metacall@Process@@CAXPEAVQObject@@W4Call@QMetaObject@@HPEAPEAX@Z) 中被引用  


     

     这种是上一个问题的后续问题,在添加对应等moc文件后还是提示无法解析等外部符号,这种需要将对应等cpp和h文件添加到项目目录中就行了

    3、LNK2019    无法解析的外部符号 "class cv::debug_build_guard::_InputOutputArray const & __cdecl cv::noArray(void)" (?noArray@cv@@YAAEBV_InputOutputArray@debug_build_guard@1@XZ),

    这种需要添加宏定义,在项目->属性->C/C++->预处理器->在预处理定义中添加宏:CV_IGNORE_DEBUG_BUILD_GUARD

    4、这种就比较简单了,一般是对应的库没有添加导致等

     项目->属性->C/C++->常规:这是添加h文件路径

    项目->属性->链接器->常规和输入:是添加对应等lib文件

    以上四种方式应该可以解决VS+QT遇到的大部分无法解析的外部符号类型问题

  • 相关阅读:
    ORB-SLAM2算法14之局部建图线程Local Mapping
    Centos7离线安装ALISQL5.6.32-8
    Django+Vue项目创建 跑通
    【深度学习3】线性回归与逻辑回归
    操作视频的开始与暂停
    ARMv7处理器
    python基础及网络爬虫
    前端基础建设与架构05 Vite 实现:从源码分析出发,构建 bundlele 开发工程
    嵌入式笔试面试刷题(day5 IIC详解)
    带你初识微服务
  • 原文地址:https://blog.csdn.net/bigtree_mfc/article/details/127922028