加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

OpenCV学习笔记(26)自动识别OpenCV版本并添加依赖库

发布时间:2020-12-14 05:30:07 所属栏目:百科 来源:网络整理
导读:这里给大家介绍一种在头文件中自动判断识别 OpenCV 的版本号,并据此添加对应的依赖库( .lib 文件)的方法。具体代码如下: #ifndef _PREDEP_H_ #define _PREDEP_H_ ? #pragma once ? #include "targetver.h" ? #include stdio.h #include tchar.h #include

这里给大家介绍一种在头文件中自动判断识别OpenCV的版本号,并据此添加对应的依赖库(.lib文件)的方法。具体代码如下:

#ifndef _PREDEP_H_

#define _PREDEP_H_

?

#pragma once

?

#include "targetver.h"

?

#include <stdio.h>

#include <tchar.h>

#include <iostream>

?

#include "opencv2/core/version.hpp"

#include "opencv2/imgproc/imgproc.hpp"

#include "opencv2/highgui/highgui.hpp"

#include "opencv2/calib3d/calib3d.hpp"

?

#define CV_VERSION_ID?????? CVAUX_STR(CV_MAJOR_VERSION) CVAUX_STR(CV_MINOR_VERSION) CVAUX_STR(CV_SUBMINOR_VERSION)

?

#ifdef _DEBUG

#define cvLIB(name) "opencv_" name CV_VERSION_ID "d"

#else

#define cvLIB(name) "opencv_" name CV_VERSION_ID

#endif

?

#pragma comment( lib,cvLIB("core") )

#pragma comment( lib,cvLIB("imgproc") )

#pragma comment( lib,cvLIB("highgui") )

#pragma comment( lib,cvLIB("flann") )

#pragma comment( lib,cvLIB("features2d") )

#pragma comment( lib,cvLIB("calib3d") )

?

#endif

?

?

这里首先是通过OpenCVversion.hpp文件获取版本号,然后将CV_MAJOR_VERSIONCV_MINOR_VERSIONCV_SUBMINOR_VERSION三个版本号数字串接成一个字符串CV_VERSION_ID。然后,根据OpenCVlib文件的命名规则和当前的编译环境(debugrelease)来定义一个命名lib文件的宏 cvLIB。最后,通过 #pragma comment ( lib,* ) 指令来添加所需的依赖库。

?

上面这种方法的便捷性在于,我们只需要指定依赖库的名称,通过所定义的宏就可以自动生成和添加与你所安装的OpenCV版本相对应的依赖库;并且将来升级OpenCV时,除非新版本的依赖库命名规则发生改变,否则就不需要再改动代码,程序会自动判断OpenCV的版本并找到对应的依赖库。

?

这种方法是参考自 wxWidgets 的,更多的技巧可以参见 wxWidgetsincludemsvcwxsetup.h wxWidgetsincludewxversion.h

?

P.S.:另外,建议在系统环境变量中设置一个专门的项来存储OpenCV的安装路径,比如命名为 OPENCVDIR,然后在Visual Studio的项目属性VC++目录中设置include目录和library目录为 $(OPENCVDIR)/include$(OPENCVDIR)/lib。这样以后升级OpenCV时,只需在系统环境变量中修改OPENCVDIR的路径,就不需要修改项目代码和编译器设置了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读