OpenCV 버 전의 만능 헤더 파일 을 자동 으로 식별 합 니 다.
http://www.cnblogs.com/easymind223/archive/2013/09/08/3308279.html
헤더 파일 에서 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 파일 을 통 해 버 전 번 호 를 가 져 온 다음 CVMAJOR_VERSION、CV_MINOR_VERSION、CV_SUBMINOR_VERSION 세 가지 버 전 번호 문자열 을 하나의 문자열 로 연결 CVVERSION_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, 그리고 Visual Studio 의 프로젝트 속성 VC + 디 렉 터 리 에 include 디 렉 터 리 와 library 디 렉 터 리 를 설정 합 니 다. $(OPENCVDIR) / include 와 $(OPENCVDIR) / lib.이렇게 해서 나중에 OpenCV 를 업그레이드 할 때 시스템 환경 변수 에서 OPENCVDIR 의 경 로 를 수정 하면 프로젝트 코드 와 컴 파 일 러 설정 을 수정 할 필요 가 없다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.