WinXP(32bit)上使用VS2010编译OpenCV3.1

网上已经有好多教程了,不同之处是系统版本、VS版本、OpenCV版本。

本文证实VS2010还是能编译OpenCV-3.1.0,只是需要修改部分内容。同时,XP+VS2010,越新版本的OpenCV,error就越多,越不好解决。

编译opencv

步骤如下:

1、安装好VS2010。

2、可以安装Eigen3,计算矩阵有用,但不是必须。Python3.4

3、opencv.org下载最新的OpenCV代码包。到github.com/opencv/opencv_contrib/releases下载附加包。

自己新建一个文件夹opencv-3.1.0,文件夹内应该有opencv-3.1.0(源文件包)和opencv_contrib-3.4.1(附加包)。新建build(编译)文件夹存放编译中的缓存文件和编译生成文件。

4、cmake.org安装cmake

5、运行cmake,配置两个路径,分别是opencv-3.1.0(源文件包)和build(编译)文件夹。点选Configure

途中会下载部分文件,较大的文件可能下载失败。通常ippicv这个就会出错,根据红色字体提示,打开build/CMakeDownloadLog.txt查找相关路径,用浏览器下载后,放到opencv-3.1.0\opencv-3.1.0\.cache\ippicv内。要将文件名前加入校验码。

6、Cmake中Configure一次后,界面多了参数和路径显示如上图,需要手动添加的是OPENCV_EXTRA_MODULE_PATH。路径需要添加到opencv-3.1.0\opencv_contrib-3.1.0\modules

新增附加包后,Configure过程中又下载了部分文件,其中tinydnn、face_landmark_model.dat都是比较容易下载失败的。下载路径和应该修改的名字和文件系统内的路径都可以在CMakeDownloadLog.txt中找到。

7、我还勾上了INSTALL_PYTHON_EXAMPLES和INSTALL_C_EXAMPLES

8、Generate。

出现的error

编译错误,需要手动修改的:

无法打开 python36_d.lib 的问题

https://blog.csdn.net/zhuxukang/article/details/79614335

error C2668: “pow”: 对重载函数的调用不明确

主要是函数具有多个不同参数类型的版本。把输入参数都定义为(float)即可。

之后编译就没有出错了。

本想编译opencv-3.4.1的,编译有多个错误难以解决……

为工程添加路径

新建工程,添加相关路径

1、include

配置属性->VC++目录->包含目录,修改后:

D:\OpenCV\opencv-3.1.0\opencv\build\install\include\opencv2;D:\OpenCV\opencv-3.1.0\opencv\build\install\include\opencv1;D:\OpenCV\opencv-3.1.0\opencv\build\install\include;$(IncludePath)


配置属性->VC++目录->库目录,修改后:

D:\OpenCV\opencv-3.1.0\opencv\build\install\x86\vc10\lib;$(LibraryPath)

2、库文件lib

这几行python代码可以帮忙输出目录内所有文件

import os
from os.path import join, getsize

libdir = 'D:\\OpenCV\\opencv-3.1.0\\opencv\\build\\install\\x86\\vc10\\lib'

for root, dirs, files in os.walk(libdir):
    for name in files:
        print( name    )

把所有lib文件都添加到配置属性->链接器->输入->附加依赖项

3、没有找到opencv_core310d.dll。。。

参考https://blog.csdn.net/nick_m276/article/details/11947915

将D:\OpenCV\opencv-3.1.0\opencv\build\install\x86\vc10\bin下的该程序需要的.dll文件拷贝到工程项目的Debug下,解决问题。

猜你喜欢

转载自blog.csdn.net/qq_27158179/article/details/81145423