1.基本
1# 设置为DEBUG模式 2set(CMAKE_BUILD_TYPE "Debug") 3 4# 声明要求的cmake最低版本 5cmake_minimum_required(VERSION 2.8) 6 7# 声明一个cmake工程 8project(HelloSLAM) 9 10# 添加一个可执行程序 11# 语法:add_executable(程序名 源代码文件) 12add_executable(helloSLAM helloSLAM.cpp) 13add_library(hello libHelloSLAM.cpp) 14add_executable(useHello useHello.cpp) 15add_library(hello_shared SHARED libHelloSLAM.cpp) 16target_link_libraries(useHello hello_shared)
2. Eigen
1cmake_minimum_required(VERSION 3.2) 2 3PROJECT(geometry) 4 5include_directories("/usr/local/include/eigen3") 6 7add_executable(Geometry useGeometry.cpp)
3.Sophus
1cmake_minimum_required( VERSION 2.8 ) 2project( useSophus ) 3 4 5 set(Sophus_DIR /home/jxq/Sophus/Sophus/build) 6# 为使用 sophus,您需要使用find_package命令找到它 7find_package(Sophus REQUIRED) 8include_directories(${Sophus_INCLUDE_DIRS}) 9 10add_executable( useSophus useSophus.cpp ) 11target_link_libraries(useSophus ${Sophus_LIBRARIES})
4.Opencv
1set(CMAKE_CXX_FLAGS "-std=c++11") 2 3project(myopencv) 4 5find_package(OpenCV REQUIRED) 6 7include_directories(${OpenCV_INCLUDE_DIRS}) 8 9add_executable(imageBasics imageBasics.cpp) 10 11target_link_libraries(imageBasics ${OpenCV_LIBS})
5. ceres + g2o
1cmake_minimum_required( VERSION 2.8 ) 2project( g2o_curve_fitting ) 3 4set( CMAKE_BUILD_TYPE "Release" ) 5set( CMAKE_CXX_FLAGS "-std=c++11 -O3" ) 6 7 8# 添加cmake模块以使用ceres库 9list( APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake_modules ) 10 11# 寻找G2O 12find_package(G2O REQUIRED) 13 14include_directories(${G20_INCLUDE_DIRS}) 15 16include_directories( 17 ${G2O_INCLUDE_DIRS} 18 "/usr/local/include/eigen3" 19) 20 21# OpenCV 22find_package( OpenCV REQUIRED ) 23include_directories( ${OpenCV_DIRS} ) 24 25add_executable( curve_fitting main.cpp ) 26# 与G2O和OpenCV链接 27target_link_libraries( curve_fitting 28 ${OpenCV_LIBS} 29 g2o_core g2o_stuff 30) 31 32cmake_minimum_required(VERSION 3.2) 33 34add_compile_options(-std=c++11) 35 36project(MyCeres) 37 38find_package(OpenCV REQUIRED) 39 40find_package( Ceres REQUIRED) 41 42include_directories("/usr/local/include/eigen3") 43 44include_directories("/usr/local/include/ceres") 45 46include_directories(${OpenCV_INCLUDE_DIRS}) 47 48include_directories( ${CERES_INCLUDE_DIRS}) 49 50add_executable(main main.cpp) 51 52target_link_libraries(main ${OpenCV_LIBS} ${CERES_LIBRARIES})