美文网首页医学图像处理
入坑C++(2): 给VS2017安装OpenCV

入坑C++(2): 给VS2017安装OpenCV

作者: 秋实华 | 来源:发表于2018-12-03 07:55 被阅读22次

    上一篇文章说了,OpenCV是C++作图像处理的一个常用开源库,VS安装的C++编译环境中没有预装OpenCV函数库,需要我们自己按照安装C++第三方库的方法安装。

    首先我们从opencv.org官网下载OpenCV的库,下载下来的是一个压缩文件,需要我们自己解压,加压后的函数库包含一系列的文件夹,其中最重要的是位于opencv/build/文件夹中的以下几个,其中opencv/是根目录;build代表已经编译好的文件;X64指的是给64位的运算环境,另一个是X86对应于32位环境;VS15是指适用于VS2017,其他版本的VS分别可对应于VS10--VS14,VS15是最新版的VS2017对应的版本。

    1.opencv/build/include-->  包含目录

    2.opencv/build/x64/VS15/lib--> 库目录

    3.opencv/build/x64/VS15/bin--> 可执行目录

    这三个目录是C++要使用OpenCV库函数需要用到的文件库,所以要添加到VS C++环境中。有两中添加方法:一种是添加到VS C++全局环境中,另一种是只添加到需要用到的工程中,我用第二种方法添加,这样用起来更加灵和。

    可执行文件目录的路径需要添加在环境变量路径中,结果如下:

    可执行文件路径添加在系统环境变量中

    库目录和包含目录的路径则需要添加在VS C++的工程中,添加方法如下:右击工程--属性--VC++目录,在右边的选项中分别将opencv/build/include;opencv/build/include/opencv; pencv/build/include/opencv三个路径添加在包含目录中,将opencv/build/x64/VS15/lib添加在库目录的路径中,添加完后结果如下:

    包含目录和库目录的添加路径

    同样是在工程属性中,选择链接器--输入属性,在右边添加附加依赖项opencv_world344.lib和opencv_world344d.lib。前者是release版本,后者debug版本。344是根据OpenCV版本不同而不同,也可能是320等。

    链接器--输入属性--附加依赖项添加项

    至此,所有的OpenCV在VS C++环境中的依赖关系全部添加好了。但是我还是遇到了以下问题,虽然很烦,但是都一一解决了:

    1.X86和X64冲突问题:

    “模块计算机类型“x64”与目标计算机类型“X86”

    解决方法:在很多的安装教程中,说如果电脑是64位操作系统则使用X64位的OpenCV版本,如果是32位的操作系统则使用X86版本的OpenCV。其实这个是不正确的,因为VS C++环境64位或32位平台不是由操作系统决定的,而是用户自己选择,如下图:

    VS C++环境 64位/32位的设置

    上图中,配置选项一般选择Debug,另一个选择是Release;平台选项就是选择64位还是32位编译平台。这个不是根据操作系统来确定的,是可以自由选择(或者按需选择),但是平台选择必须和OpenCV的版本一致,我下载的OpenCV是X64,所以我必须选择X64平台。如果想用32位平台,那就下载X86的OpenCV。

    2.无法打开库文件

    无法打开文件 opencv_world344d.lib

    只要是已经将opencv_world344d.lib添加在链接器的附加依赖项中,这个问题是不会出现的。我之所以出现,是因为将库目录的路径开始写错了,写成了opencv/build/x64/VS15/bin而正确的应该是opencv/build/x64/VS15/lib

    3.找不到执行文件

    找不到opencv_world344d.dll

    接二连三的问题真是奔溃了,但是问题还是得解决,结果原因很简单。我在添加环境变量路径之前已经打开了VS,所以VS此时还识别不了新添加的路径,必须重启VS。重启之后顺利解决问题,最后终于大功告成。。

    相关文章

      网友评论

        本文标题:入坑C++(2): 给VS2017安装OpenCV

        本文链接:https://www.haomeiwen.com/subject/eqjecqtx.html