自动识别OpenCV版本并添加依赖库

11 篇文章 1 订阅

这里给大家介绍一种在头文件中自动判断识别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

 

 

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

 

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

 

这种方法是参考自 wxWidgets 的,更多的技巧可以参见 wxWidgets\include\msvc\wx\setup.h 和 wxWidgets\include\wx\version.h 。

 

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

转自:http://blog.csdn.net/chenyusiyuan/article/details/8706177

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值