C++ CMake和OpenCV 3.0
我正试图用Cmake和OpenCV 3.0建立一个非常基础的项目 我的文件夹结构如下所示:C++ CMake和OpenCV 3.0,c++,windows,opencv,cmake,C++,Windows,Opencv,Cmake,我正试图用Cmake和OpenCV 3.0建立一个非常基础的项目 我的文件夹结构如下所示: OpenCVTest | |--- build |--- data |--- include |--- src |--- CMakeLists.txt CMakeLists.txt文件包含以下内容: cmake_minimum_required(VERSION 3.4) project(OpenCVTest) find_package(OpenCV REQUIRED) include_directo
OpenCVTest
|
|--- build
|--- data
|--- include
|--- src
|--- CMakeLists.txt
CMakeLists.txt
文件包含以下内容:
cmake_minimum_required(VERSION 3.4)
project(OpenCVTest)
find_package(OpenCV REQUIRED)
include_directories(
${CMAKE_SOURCE_DIR}/include
${OpenCV_INCLUDE_DIRS})
set(SOURCES
src/main.cpp
src/MyData.cpp
include/MyData.h)
add_executable(${PROJECT_NAME} ${SOURCES})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
我提取了OpenCV,设置环境变量OpenCV\u DIR=\OpenCV\build\x86\vc12
,并按照OpenCV+CMake教程的建议,将%OpenCV\u DIR%\bin
添加到Windows中的路径
变量中
运行CMake时,出现以下错误消息:
CMake Error at CMakeLists.txt:4 (find_package):
By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has asked
CMake to find a package configuration file provided by "OpenCV", but CMake did
not find one.
Could not find a package configuration file provided by "OpenCV" with any
of the following names:
OpenCVConfig.cmake
opencv-config.cmake
Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
"OpenCV_DIR" to a directory containing one of the above files. If "OpenCV"
provides a separate development package or SDK, be sure it has been
installed
因此,我更改了环境变量OpenCV\u DIR=\OpenCV\build
的值,该变量位于OpenCVConfig.cmake
文件中
完成此操作后(并重新启动Windows以更新环境变量!!!),CMake能够成功配置和生成项目
但是,CMake使用静态库链接
OpenCV STATIC: ON
Found OpenCV 3.0.0 in <PATH_TO_CMAKE>/opencv/build/x86/vc12/staticlib
以前
find_package(OpenCV REQUIRED)
将强制CMake使用动态链接,但是,PATH
变量不包含指向OpenCV DLL的正确路径,并且需要添加\OpenCV\build\x86\vc12\bin
(对于32位和VS2013)
以上所有的解决方案似乎都很不雅观,对我来说也不是很方便。我还尝试了几个FindOpenCV.cmake
文件,但是没有一个能够正确找到OpenCV目录
我的问题是:是否有人能提供一个解决方案来设置一个非常基本的CMake+OpenCV 3.0示例项目,该项目没有上述缺点?可能重复使用OpenCV\u DIR的源代码在哪里?你是一周内第二个问这个问题的人,也许我们应该追问一下文章的作者假设您的意思是使用完全相同的大写字母的来源,您的链接适用于beta 3.0,但在3.0.0版本中,它没有改进:使用正确的大写字母对您有效吗?它没有解决我的问题,没有。如果环境变量名为“OPENCV_DIR”或“OPENCV_DIR”,则会发生CMake错误可能重复使用OPENCV_DIR的源代码在哪里?你是一周内第二个问这个问题的人,也许我们应该追问一下文章的作者假设您的意思是使用完全相同的大写字母的来源,您的链接适用于beta 3.0,但在3.0.0版本中,它没有改进:使用正确的大写字母对您有效吗?它没有解决我的问题,没有。如果环境变量名为“OPENCV_DIR”或“OPENCV_DIR”,则会发生CMake错误
find_package(OpenCV REQUIRED)