OpenCV의 여러 버전의 공존을 가져오는 Cmake 문제에 대한 원클릭 솔루션

샘플 CMakeLists.txt 코드

cmake_minimum_required(VERSION 2.8)

set(CMAKE_BUILD_TYPE "Release")
# 添加c++ 11标准支持
set(CMAKE_CXX_FLAGS "-std=c++11 -O2")

project(imageBasics)

set(OpenCV_DIR /usr/opencv3/share/OpenCV)
find_package(OpenCV REQUIRED)

include_directories(${
    
    OpenCV_INCLUDE_DIRS})

# message("Opencv_LIBS:"${
      
      OpenCV_LIBS})
add_executable(imageBasics imageBasics.cpp)
# 链接OpenCV库
target_link_libraries(imageBasics ${
    
    OpenCV_LIBS})

add_executable(undistortImage undistortImage.cpp)
# 链接OpenCV库
target_link_libraries(undistortImage ${
    
    OpenCV_LIBS})

우리는 그것을 본다

set(OpenCV_DIR /usr/opencv3/share/OpenCV)

우리가 컴파일한 opencv3의 또 다른 버전인 cmake 프로젝트의 Opencv_DIR 위치를 설정하는 문으로, opencv3 컴파일 시 설치 위치를 사용자 지정합니다.
그런 다음 사용

find_package(OpenCV REQUIRED)

그는 OpenCVConfig.cmake와 같은 이전에 설정된 OpenCV_DIR 디렉토리에서 일부 파일을 찾을 수 있습니다. 이 파일은 OpenCV가 자동으로 뒤에 경로를 설정하도록 안내합니다. OpenCV_INCLUDE_DIRS 뒤에 자동으로 설정되는 것을 볼 수 있습니다.
이 시점에서 일반 설치와 차이가 없습니다.
이것이 가장 쉬운 방법입니다! 다른 사람들은 OpenCV_INCLUDE_DIRS, OpenCV_LIBS를 변경하기 위해 호출됩니다. 너무 번거롭습니다. OpenCV_DIR 하나만 변경하면됩니다. 물론 다른 프로젝트도 마찬가지입니다.

set(XXXXXX_DIR .cmake文件所在路径)

온라인에서

추천

출처blog.csdn.net/kanhao100/article/details/119727288