CMakeLists.txt笔记 OpenCV2和3共存

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a356337092/article/details/73529635

OpenCV2和3共存:

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

mkdir build
cd 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} SHARED
XXXXX.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}   )

猜你喜欢

转载自blog.csdn.net/a356337092/article/details/73529635