OpenCV无法解析的外部符号以及OpeCV(32位) + VS的配置

老师给安排了一个任务,用到了一个第三方库,但这个第三方库比较老只有x86的版本,因此

vs的编译器使用了x86版本的。再调用我之前配好的opencv环境时,报了一堆关于opencv的未解析的外部符号

一种未解析的外部符号的原因和解决方式

原因:解释器和opencv库不对应

如,使用的是opencv x64库,而vs的编译器却使用的x86版本的)

如,使用的是opencv release版本的库,而vs的解决方案配置的是debug

解决方式:修改vs的编译器的位数和opencv一致(如果你opencv的库的路劲是在这个文件下就是x64版本的)

  • 如,我再VS下配置的“属性管理器/VC++目录/库目录”中使用的路径是“D:\Program\opencv\build\x64\vc15\lib”,是在x64目录下,所以我是用的opencv是64位的

这时需要在VS中将x86改为x64

  • 如果解决方案配置是Debug对应使用opecv_worldxxxd.lib,

Release对应使用opencv_worldxxx.lib


OpeCV目录下没有x86(32位)的版本的解决方式

现在从opencv官网下的windows包里面只有x64的,因此需要32位的需要自己编译

  1. 使用工具CMake, VS

CMake工具下载Download | CMake

选择cmake-3.26.0-rc4-windows-x86_64.zip

下载好之后解压后,添加bin目录到系统变量:如,D:\cmake\cmake-3.26.0-windows-x86_64\bin

  1. 打开CMake

选择源码路径build路径(build路径是需要自己新建的,选择合适的位置即可)

我的build目录(x86build文件夹)是在opencv路径下新建的

选择好之后点击configure

  1. 点击configure之后的选项

选择生成win32,不选的话默认是x64,要生成32位的一定要选,否则install的时候缺少x86选项

选好之后点击finish

  1. 等待configure,出现configure done, 之后将BUILD_opencv_world打上对勾,不然会缺少对应的库文件

  1. 最后generate,等待结束后,显示generate done(我的图片是已经生成过的,所以下面显示configure done 和 generate done,不用看这个)

  1. 在刚才新建的build目录(我的是x86build)下找到OpenCV.sln打开

  1. 点击生成->批生成

  1. 选择install选项,生成之前注意平台和解决方案是否是你所需要的,如Win32还是x64,如果你需要32位的,但是没有对应选项,可能是之前点击configure时没有正确配置

勾选Debug,会生成opencv_worldxxxd.dll

勾选Release,会生成opencv_worldxxx.dll

如果你都需要可以都选上,我这里只需要debug版本的,就之选了一个

勾选后之后点击生成,时间会稍有点久

  1. 查看结果,等待生成结束后,到对应的目录下查看是否生成成功

路径为“.../build目录/install/x86/vc16/bin”和 “.../build目录/install/x86/vc16/lib”

我的结果如下

这样,windows下x86版本的opencv便安装好了,之后接下里就是在VS中配置OpenCV 32位的环境

  1. 添加环境变量和动态库文件

①添加的bin目录需要时自己生成x86版本下的

②添加动态库文件

以32位为例,我需要的时debug版本的

找到“....\opencv\x86build\install\x86\vc16\bin”目录下的opencv_world450d.dll文件并复制

将文件复制到C:\Windows\System32目录下(32位release版本的opencv_world450.dll也是在这个目录下)

如果你的是x64版本的,则应该添加到C:\Windows\SysWOW64目录下(64位release版本的opencv_world450.dll也是在这个目录下)

  1. 打开自己的VS项目文件,选择项目->属性

①添加VC++目录->包含目录,添加内容如图(记得修改成自己的路径,别直接填我的)

②添加VC++目录->库目录,

③添加链接器->输入->外部依赖项

注意对应debug版本(opencv_worldxxxd.lib)和release版本(opencv_worldxxx.lib)

  1. 点击确定,就配置好了

  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XaoPage

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值