【发布时间】:2022-01-06 16:57:27
【问题描述】:
我认为这是创建使用 OpenCV 库的项目的基本步骤,因此您无需手动包含所有库。没有关于这个主题的详细信息,至少对于一个只想尽快使用 OpenCV 的新手来说,所以:
使用 Cmake 创建多平台 c++ OpenCV 的最简单且可扩展的方法是什么?
【问题讨论】:
我认为这是创建使用 OpenCV 库的项目的基本步骤,因此您无需手动包含所有库。没有关于这个主题的详细信息,至少对于一个只想尽快使用 OpenCV 的新手来说,所以:
使用 Cmake 创建多平台 c++ OpenCV 的最简单且可扩展的方法是什么?
【问题讨论】:
我正在使用 opencv3.0 和 cmake3.8, 下面的配置对我有用!
######## A simple cmakelists.txt file for OpenCV() #############
cmake_minimum_required(VERSION 2.8)
PROJECT(word)
FIND_PACKAGE( OpenCV REQUIRED )
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} )
ADD_EXECUTABLE(word main.c)
TARGET_LINK_LIBRARIES (word ${OpenCV_LIBS})
########### end ####################################
【讨论】:
首先:创建一个文件夹Project,其中包含两个子文件夹src和include,以及一个名为的文件>CMakeLists.txt.
第二:把你的cpp放在src文件夹里,把你的头文件放在include文件夹里。
第三:您的 CMakeLists.txt 应如下所示:
cmake_minimum_required(VERSION 2.8)
PROJECT (name)
find_package(OpenCV REQUIRED )
set( NAME_SRC
src/main.cpp
)
set( NAME_HEADERS
include/header.h
)
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR}/include )
link_directories( ${CMAKE_BINARY_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
add_executable( name ${NAME_SRC} ${NAME_HEADERS} )
target_link_libraries( sample_pcTest ${OpenCV_LIBS} )
第四: 打开 CMake GUI 并选择根文件夹作为输入,并为输出创建一个构建文件夹。点击configure,然后generate,选择生成器(VisualStudio, Eclipse, ...)
【讨论】:
link_directories(${OpenCV_LIB_DIR}),因为在 ${OpenCV_LIBS} 中返回的值仅包括库名称(不是完整路径)。如果您希望${OpenCV_LIBS} 实际包含库路径,那么您将需要find_package(OpenCV REQUIRED core imgproc ...)。静态构建时,这意味着在 find_package 调用中添加每个 opencv 模块。