关于CMAKE中查找自定义路径OpenCV的问题
2018-01-17 21:55
260 查看
关于CMAKE中查找自定义路径OpenCV的问题
前段时间在机器上(ubuntu16.04)安装了ROS_kinetic,因此机器上散布着opencv2.4.9、opencv3.0.0以及ros引入的opencv3.2.0。删掉机器上的opencv2.4.9之后,发现使用cmake编译opencv程序时,总是找到3.2.0的opencv,而不能找到3.0.0(opencv3.0.0make时的CMAKE_INSTALL_PREFIX为/usr/local/opencv300)。
尝试修改在
/etc/ld.so.conf文件中添加
/usr/local/opencv300/lib
与修改
~/.bashrc如下
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opencv300/lib export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/opencv300/lib
均无法成功找到opencv3.0.0
最终,修改
CMakeList.txt中相关语句如下,才得以成功
SET(OpenCV_DIR /usr/local/opencv300/share/OpenCV) find_package(OpenCV 3 REQUIRED)
按照此路径,cmake可以找到一个opencv的设置文件
OpenCVConfig.cmake
文件头部有注释如下:
# =================================================================================== # The OpenCV CMake configuration file # # ** File generated automatically, do not modify ** # # Usage from an external project: # In your CMakeLists.txt, add these lines: # # find_package(OpenCV REQUIRED) # include_directories(${OpenCV_INCLUDE_DIRS}) # target_link_libraries(MY_TARGET_NAME ${OpenCV_LIBS}) # # Or you can search for specific OpenCV modules: # # find_package(OpenCV REQUIRED core videoio) # # If the module is found then OPENCV_<MODULE>_FOUND is set to TRUE. # # This file will define the following variables: # - OpenCV_LIBS : The list of all imported targets for OpenCV modules. # - OpenCV_INCLUDE_DIRS : The OpenCV include directories. # - OpenCV_COMPUTE_CAPABILITIES : The version of compute capability. # - OpenCV_ANDROID_NATIVE_API_LEVEL : Minimum required level of Android API. # - OpenCV_VERSION : The version of this OpenCV build: "3.0.0" # - OpenCV_VERSION_MAJOR : Major version part of OpenCV_VERSION: "3" # - OpenCV_VERSION_MINOR : Minor version part of OpenCV_VERSION: "0" # - OpenCV_VERSION_PATCH : Patch version part of OpenCV_VERSION: "0" # - OpenCV_VERSION_STATUS : Development status of this build: "" # # Advanced variables: # - OpenCV_SHARED : Use OpenCV as shared library # - OpenCV_CONFIG_PATH : Path to this OpenCVConfig.cmake # - OpenCV_INSTALL_PATH : OpenCV location (not set on Windows) # - OpenCV_LIB_COMPONENTS : Present OpenCV modules list # - OpenCV_USE_MANGLED_PATHS : Mangled OpenCV path flag # - OpenCV_MODULES_SUFFIX : The suffix for OpenCVModules-XXX.cmake file # # Deprecated variables: # - OpenCV_VERSION_TWEAK : Always "0" # # ===================================================================================
仿照注释中样例写法,可以找到opencv头文件和库文件,使用参考文献中的方法输出opencv版本等变量,得到:
-- OpenCV library status: -- version: 3.0.0 -- libraries: opencv_xphoto;opencv_xobjdetect;opencv_ximgproc;opencv_xfeatures2d;opencv_tracking;opencv_text;opencv_surface_matching;opencv_saliency;opencv_rgbd;opencv_reg;opencv_optflow;opencv_line_descriptor;opencv_latentsvm;opencv_face;opencv_datasets;opencv_ccalib;opencv_bioinspired;opencv_bgsegm;opencv_adas;opencv_viz;opencv_videostab;opencv_videoio;opencv_video;opencv_superres;opencv_stitching;opencv_shape;opencv_photo;opencv_objdetect;opencv_ml;opencv_imgproc;opencv_imgcodecs;opencv_highgui;opencv_hal;opencv_flann;opencv_features2d;opencv_core;opencv_calib3d -- include path: /usr/local/opencv300/include/opencv;/usr/local/opencv300/include
参考文献戳这里
相关文章推荐
- cmake编译opencv时关于cuda的问题
- 关于opencv在QT下的若干问题总结
- opencv 中关于rgb范围的问题
- 关于opencv提取ORB特征时 cannot declare variable ‘orb’ to be of abstract type ‘cv::ORB问题
- 关于“计算机opencv_imgcodecs340d.dll,因为没有程序不能开始。。。”问题的解决方法
- 关于opencv程序的打包发布问题
- 关于sql数据库维护失败的问题查找方法
- 关于查找iOS中App路径时所要注意的一个问题
- lua 脚本 string.find 查找关于 ( ) 的问题
- 关于在屏幕上查找某个图形的问题
- 关于OpenCV中矩阵调用自带函数的问题
- 关于Opencv python中 cvmat 和ndarray的转换问题
- 关于opencv 在ubuntu16.04 下的问题
- 关于查找可视树的一点问题
- 菜鸡关于VC++6.0配置OpenCV时遇到的问题及解决方案
- 关于opencv中Mat数据对齐的问题
- jquer mobile关于查找替换修改span style样式问题
- OpenCV:关于Ubuntu下安装OpenCV.2.3.1时出现cmake错误的解决办法
- opencv2.4.10+vs2010无法查找或打开 PDB 文件的问题
- OpenCV2学习笔记(十五):利用Cmake快速查找OpenCV函数源码