CMakeLists.txt笔记 OpenCV2和3共存

来源:互联网 发布:临沂百度关键词优化 编辑:程序博客网 时间:2024/05/01 05:13

OpenCV2和3共存:

如果2默认编译安装了,那么2的库位置应该在/usr/local/lib ,再CMakeLists.txt中 find_package,系统默认会找/usr/local/share/OpenCVConfig.cmake
再下载3源码,解压后

mkdir buildcd build 

更改安装目录(先在/usr/local下新建文件夹opencv3)

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..

编译:

make -j sudo make install

这样就把3安装在opencv3文件夹了(bin lib share include)

在使用的时候,在CMakelists.txt中,如要用3,在find_package前指明路径:

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

用2的时候:

find_package(OpenCV 2 REQUIRED)

如果要用gdb调试,需要在txt中:

SET(CMAKE_BUILD_TYPE "Debug")

不过这样会减慢编译速度

如果要用C++11:

add_definitions(-std=c++11)

最简单的流程:

cmake_minimum_required(VERSION 2.8)project(XXX)#指定编译器:SET(CMAKE_C_COMPILER g++)#找到要用的包:find_package(OpenCV 3 REQUIRED) include_directories(${PROJECT_SOURCE_DIR}#其他头文件路径)#创建库:add_library(${PROJECT_NAME} SHAREDXXXXX.cpp)\#给库链接到开源库target_link_libraries(${PROJECT_NAME}${OpenCV_LIBS})#生成可执行文件,链接到创建的库add_executable(main main.cpp)target_link_libraries(main ${PROJECT_NAME})

eigen的使用

首先需要在根目录

 mkdir cmake_modules

并在cmake_modules里放进 FindEigen3.cmake文件
然后:

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)#或者 LIST(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules)find_package(Eigen3 REQUIRED)include_directories(     ${EIGEN3_INCLUDE_DIR}   )
原创粉丝点击