cmake_minimum_required( VERSION 2.8 )
project ( myslam )
set( CMAKE_CXX_COMPILER "g++" )
set( CMAKE_BUILD_TYPE "Release" )
set( CMAKE_CXX_FLAGS "-std=c++11 -march=native -O3" )
#PROJECT_SOURCE_DIR为工程的根目录
#cmake_modules里面存放自动获取依赖库的路径信息
list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules )
set( EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin )
set( LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib )
############### dependencies 依赖关系######################
#include_directories:添加头文件路径
# Eigen
include_directories( "/usr/include/eigen3" )
# OpenCV
find_package( OpenCV 3.1 REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
#include_directories( "/usr/local/include/opencv" )
#include_directories( "/usr/local/include")
#通过find_package( OpenCV 3.1 REQUIRED ),输出CMAKE为你找到的有关OPENCV的信息
message(STATUS "OpenCV library status:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
# Sophus
find_package( Sophus REQUIRED )
include_directories( ${Sophus_INCLUDE_DIRS} )
message(STATUS "Sophus library status:")
message(STATUS " version: ${Sophus_VERSION}")
message(STATUS " libraries: ${Sophus_LIBRARIES}")
message(STATUS " include path: ${Sophus_INCLUDE_DIRS}")
# G2O
find_package( G2O REQUIRED )
include_directories( ${G2O_INCLUDE_DIRS} )
set( THIRD_PARTY_LIBS
${OpenCV_LIBS}
${Sophus_LIBRARIES}
g2o_core g2o_stuff g2o_types_sba
)
############### 添加工程的.cpp source 以及自己创建的.h 库 ######################
include_directories( ${PROJECT_SOURCE_DIR}/include )
add_subdirectory( src )
add_subdirectory( test )
以slambook-master/project/0.2 工程为例理解CMAKELISTS.TXT
最新推荐文章于 2024-06-13 00:24:00 发布