CMake编译运行OpenCV程序_debug总结

来源:互联网 发布:sql语句查询所有库存 编辑:程序博客网 时间:2024/05/22 04:23

任务:测试作者源代码,CMake编译运行OpenCV


1. CMake编译

作者已经写好了CMakeList.txt,并有安装使用的说明文档

OpenCV用CMake编译的官方文档:
Using OpenCV with gcc and CMake

CMakeLists.txt里关于OpenCV的代码:

# find OpenCVFIND_PACKAGE(OpenCV REQUIRED)# set compilationTARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})

2. 发现CMake没有找到OpenCV

下载FindOpenCV.cmake
放到CMake的Modules文件夹里;这个文件夹里还有许多其它的Find文件
我电脑上的路径:/usr/local/Cellar/cmake/3.0.2/share/cmake/Modules

可参考:
stackoverflow讨论

FindOpenCV会找到电脑上OpenCV的库文件和头文件路径,并存到变量中供后续调用。
个人认为前提是安装OpenCV后源码工程没有删除,里面有安装OpenCV的CMake配置文件,FindOpenCV通过这些配置文件找到路径。

The following are set after configuration is done:
OpenCV_FOUND
OpenCV_LIBS
OpenCV_INCLUDE_DIR
OpenCV_VERSION


3. 发现作者的OpenCV是2.4版本

本机安装的是3.0版本,报错有些类没有定义

可以同时安装OpenCV的多个版本,需要人工设定路径
CMake设定头文件和lib文件路径,以及连接库文件:

# Set header search path include_directories(/usr/local/include/opencv2.4.9/)# Set libraries search path LINK_DIRECTORIES(/usr/local/lib/opencv2.4.9/)set( OpenCV_LIBS opencv_calib3d.2.4.9 opencv_contrib.2.4.9 opencv_core.2.4.9 opencv_features2d.2.4.9 opencv_flann.2.4.9 opencv_gpu.2.4.9 opencv_highgui.2.4.9 opencv_imgproc.2.4.9 opencv_legacy.2.4.9 opencv_ml.2.4.9 opencv_nonfree.2.4.9 opencv_objdetect.2.4.9 opencv_ocl.2.4.9 opencv_photo.2.4.9 opencv_stitching.2.4.9 opencv_superres.2.4.9 opencv_video.2.4.9 opencv_videostab.2.4.9)TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})# 另外可以输出变量名检测赋值是否正确MESSAGE( STATUS "OpenCV_LIBS: " ${OpenCV_LIBS} )

可参考:
stackoverflow讨论
CMake官方文档


附:OpenCV2.4与3.0关于machine Learning module的变化
官方文档:Changes overview
这里写图片描述

0 0