VS2015+Qt5+OpenCV3编译出现的问题

在尝试编译使用VS2015、Qt5和OpenCV3的程序时遇到错误,包括ACCESS_MASK冲突、链接错误LNK2001和Qt的外部符号问题。解决方法包括:对于ACCESS_MASK冲突,注释掉using namespace cv并使用cv::;为解决LNK2001,添加Qt库到附加依赖项;对于剩余的LNK2001错误,将moc文件添加到工程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译师兄的程序,源程序配置是VS2015+Qt5+OpenCV249x64平台,这个程序在不同的电脑上跑每次都出现一堆错误,需要好好配置才能跑通。在此记录一些通用的问题。

error C2872: “ACCESS_MASK”

源程序用的是opencv2,我配置的opencv3,出现错误
参考网址
https://www.cnblogs.com/darkknightzh/p/5500795.html
opencv3.0的cv空间和windows.h中ACCESS_MASK定义冲突。
注释掉using namespace cv,再所有需要用到cv的地方加cv::即可。

error LNK2001 无法解析的外部符号

出现大量的连接错误ERROR LNK2001 无法解析的外部符号,均与Qt有关,原因是未连接到Qt库。
项目–>属性–>链接器–>输入–>附加依赖项 添加
qtmaind.lib
Qt5Cored.lib
Qt5Guid.lib
Qt5Widgetsd.lib

QT error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall Widget::metaObjecct

在添加过附加依赖项后,大部分error LNK2001解决,还剩下几个解决不掉,与QObject宏的识别出现问题有关
参考网址
https://blog.youkuaiyun.com/phenixyf/article/details/69951762
解决方法:将GeneratedFiles\Debug目录下生成的moc_MyQt.cpp添加到工程即可(如果没有moc文件,则根据上述链接的方法手动生成)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值