CMakeLists.txt 编写说明

对自己在学习SLAM、C++过程中遇到的编写规律进行总结,希望可以帮到大家。

1. 声明最小版本需求

cmake_minimum_required(VERSION xxx)

2. 设置项目名称

project(xxx)

3. 通过设置变量CMAKE_BUILD_TYPE来配置编译类型(Debug、Release……)

set(CMAKE_BUILD_TYPE Debug)

4. 通过设置变量CMAKE_CXX_FLAGS来设置编译选项

set(CMAKE_CXX_FLAGS "-std=c++11")

5.引入第三方库

find_package 命令:在目录中查找相关配置文件,将头文件目录设置到 ${xxx_INCLUDE_DIRS} 中,将链接库设置到 ${xxx_LIBS} 中。

include_directories命令:给编译器提供头文件配置。

一般情况下(在引入第三方库)上述两命令配合使用。

# Eigen 库
include_directories("/usr/include/eigen3")

# Sophus 库
find_package(Sophus REQUIRED)
include_directories(${Sophus_INCLUDE_DIRS})

# Opencv 库
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})

# g2o 库
find_package(G2O REQUIRED)
include_directories(${G2O_INCLUDE_DIRS})

6. 生成可执行文件

add_executable(demo demo.cpp)

7. 链接第三方库

target_link_libraries(demo ${OpenCV_LIBS})

 在引入第三方库时,“find_package”、“include_directories”、 “ target_link_libraries” 三条命令经常一同使用

8. 源文件中包含自定义函数的调用时

add_executable(demo demo.cpp function.cpp)
include_directories(.)

其中demo.cpp即为主文件,function.cpp为主文件中调用的函数文件。

include_directries后填写function.h文件的路径。


CMakeList.txt 简单示例

cmake_minimum_required(VERSION 2.8)
# 声明camke最小版本需求

project(useEigen)
# 设置项目名称

set(CMAKE_BUILD_TYPE "Release")
set(CMAKE_CXX_FLAGS "-O3")
#编译相关选项设置

include_directories("/usr/include/eigen3")
# 添加Eigen头文件

add_executable(eigenMatrix eigenMatrix.cpp)
#生成可执行文件

CMakeList.txt 常见错误

1. CMakeLists.txt 文件名出错,无法识别

2. 编译相关设置问题

3. 第三方软件库链接出错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值