cmake编译成.so文件_CMakeLists.txt文件如何编写?(一 基础篇)

本文详细介绍了如何在Linux环境下使用CMakeLists.txt文件配置编译项目,包括设置cmake版本、编译模式、检查C++版本,以及针对不同情况如仅包含OpenCV库、包含源码形式第三方库(如DBoW2)和库形式(如DBoW3)的配置方法。文章通过示例代码展示了具体步骤。
摘要由CSDN通过智能技术生成

点击上方“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} )
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值