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

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

#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的版本并找到对应的依赖库。

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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...