연결하려면 OpenCV 2.4.11이 필요한 응용 프로그램이 있으므로 내 make
파일에서 다음 링커 플래그 패턴을 사용해야 합니다.
-l:libopencv_core.so.2.4.11
이 가정은 얼마나 견고합니까?
내 특정 문제는 기본적으로 v2.4.7이 있는 내 컴퓨터인 Ubuntu 14.04에 있기 때문에 그냥 사용하면 -lopencv_core
잘못된 버전을 얻게 됩니다. cv::fisheye
2.4.11 이상을 사용하고 있는데 CMake에 find_package(OpenCV)
버전 지정 기능이 없습니다.
답변1
이로 인해 특정 패키지 구성에 종속됩니다(매우 취약함). 이전 항목과 일치하지 않거나~ 후에라이브러리 버전.
애플리케이션에 특정 기능(링크의 성공/실패를 통해 즉시 확인할 수 없음)이 필요한 경우 일반적인 접근 방식은 라이브러리의 릴리스 버전(모든 라이브러리에 버전이 있는 것은 아니지만 대부분)을 확인하는 일부 초기화 코드를 작성하는 것입니다. 함수 또는 전역 변수).
예를 들어, OpenCV(기반OpenCV 버전을 확인하는 방법)에는 다음과 같은 기능이 있습니다.
printf("OpenCV: %s", cv::getBuildInformation().c_str());
추가 자료:OpenCV 2.4.10 문서~을 위한빌드 정보 가져오기:
반환 값은 버전 제어 시스템 개정, 컴파일러 버전, 컴파일러 플래그, 활성화된 모듈 및 타사 라이브러리 등을 포함한 원시 cmake 출력입니다. 출력 형식은 대상 아키텍처에 따라 다릅니다.