点击上方“3D视觉工坊”,选择“星标”
干货第一时间送达
3D视觉工坊的第62篇文章
本文以linux平台下CMakeLists.txt文件书写方法总结。
一 开头通用模块
1.1 cmake版本要求
cmake_minimum_required( VERSION 2.8 )
#工程文件名loop_closure,可任取
project( loop_closure )
1.2 编译模式
IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release)ENDIF()
MESSAGE("Build type: " ${ CMAKE_BUILD_TYPE})
当然如果此处在前面加上语句:
set(CMAKE_BUILD_TYPE debug)
即表示设置为debug模式编译。
1.3 检查C++版本
检查C++的版本
# Check C++11 or C++0x supportinclude(CheckCXXCompilerFlag)
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)if(COMPILER_SUPPORTS_CXX11)
set(CMAKE_CXX_FLAGS "${ CMAKE_CXX_FLAGS} -std=c++11")
add_definitions(-DCOMPILEDWITHC11)
message(STATUS "Using flag -std=c++11.")elseif(COMPILER_SUPPORTS_CXX0X)
set(CMAKE_CXX_FLAGS "${ CMAKE_CXX_FLAGS} -std=c++0x")
add_definitions(-DCOMPILEDWITHC0X)
message(STATUS "Using flag -std=c++0x.")else()
message(FATAL_ERROR "The compiler ${ CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")endif()
二 项目文件配置模块
接下来,便开始配置各个库模块。
2.1 如果仅包含OpenCV库时
set(OpenCV_DIR "/usr/local/include/opencv3.2.0/share/OpenCV")
find_package(OpenCV REQUIRED)include_directories( ${ OpenCV_INCLUDE_DIRS} )