VS2010上编译opencv3.1.0的32位静态链接库(动态链接库)

opencv-3.1.0.exe解压后现成的竟然只有x64版的vc12(VS2013)和vc14(VS2015)的动态链接库,当年opencv2.4.x版本解压后可是一大堆各种版本的(什么x86(32位),x64的,vc9,vc10的...),因为项目需要32位的静态库,虽然电脑上安装了VS2013,但是还是VS2010用的习惯,只好自己用cmake对opencv-3.1.0的sources生成VS2010的项目,具体cmake生成opencv-3.1.0项目这里暂时略过,反正网上教程很多....主要是在cmake配置的时候根据自己的需要去掉很多选项,现在的opencv是太庞大了..
1) 去掉很多选项后(我是要生成静态库,把BUILD_SHARED_LIBS取消了,保留就生成的是动态链接库),打开OpenCV.sln,编译ALL_BUILD项目,....等待十几分钟,ok,没出错,所有lib库都生成成功了哦,至少是能生成成功.
2)lib库: 把C:\opencv-3.1.0\DIY_Build\3rdparty\lib\Release(我的是这个路径)下的所有第三方静态库和C:\opencv-3.1.0\DIY_Build\lib\Release下的opencv3.1.0的静态库,都拷贝出来到C:\opencv-3.1.0\build\x86\vc10\staticlib(我自己创建的是这个路径)文件夹下,
3) 头文件: 然后是准备include文件夹(C:\opencv-3.1.0\build\include 我的是这个路径)下东西直接拷贝opencv-3.1.0.exe解压出来的即可. 以上两项相当于lib文件和头文件都准备妥当,我以为后面自己的项目调用的话就万事大吉了,可是万万没想到....


------------------------------------------------------------------------------------------------------------------------
错误(一): 错误症状: >opencv_core310.lib(matrix.obj) : error LNK2001: 无法解析的外部符号 _ippicvsSortDescend_8u_I@8
....有二三十个 _ipp开头的错误,ok,这个我知道了,肯定是cmake配置的WITH_IPP没有取消,于是乎在cmake配置里把WITH_IPP取消,再编译生成静态库,可是还是有错误,只剩下几个了,离成功又近了一步,hoho..
------------------------------------------------------------------------------------------------------------------------

错误(二): 错误症状:  error LNK2001: 无法解析的外部符号 "class cv::Mat __cdecl cv::imread(class cv::String const &,int)"  
晕,imread怎么会木有,我明明已经加了#pragma comment( lib, "opencv_highgui310.lib" ) ,莫非opencv3.x以后highgui模块里木有imread了,查看了OpenCV.sln里的opencv_highgui_object项目里的highgui相关的源代码,我靠在highgui.hpp果然找不到imread,后来瞄了一眼,发现有个opencv_imgcodecs项目,好吧,imread它就安详地躲在那里面,然后把opencv_imgcodecs310.lib加进去(#pragma comment( lib, "opencv_imgcodecs310.lib" ) )...
------------------------------------------------------------------------------------------------------------------------

然后再一编译我的项目,imread是ok了,可是又有一堆新的错误神器地诞生了....


错误(三):错误症状: ,无法解析的外部符号 _WebPGetFeaturesInternal...
 无法解析的外部符号 "public: class Imf::Header const & __thiscall Imf::InputFile::header(void)const " (?header@InputFile@Imf@@QBEABVHeader@2@XZ)..
 把cmake配置的WITH_WEBP,WITH_OPENEXR选项去掉了,再N次成静态库,ok,总算我的项目编译成功,能显示图片了..done..


顺便附上我的BUILD选项和WITH选项,其他项目我好像大概没动过吧
 
 
 






 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值