【c++】cmakelists文件

本文详细介绍了cmake版本查看、cmakeLists文件的编写,包括一级和二级cmakelists内容,如设置编译选项、头文件路径、第三方库引用、编译目录、debug模式、路径变量以及catkin项目的注意事项。
摘要由CSDN通过智能技术生成

查看cmake的版本

cmake --version

一. cmakelists文件编写

以下为cmakelists中文件内容

1.1 一级cmakelist文件

cmake_minimum_required(VERSION 3.5)
project( apa )

# cmakelists中更改
set(CMAKE_BUILD_TYPE Release)     

set(CMAKE_CXX_FLAGS "-std=c++14")   # g++编译选项
# set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -pthread")

# 指定头文件搜索路径, 子模块也会共享此查询目录,无需重复设置
include_directories(
    ${PROJECT_SOURCE_DIR}/src/inc
    /opt/ros/noetic/include/
)

# 第三方库缩写

# 设置编译文件路径
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/src/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/src/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/build)

# 指定编译子目录
add_subdirectory(useEigen)
add_subdirectory(useGeometry)
add_subdirectory(visualizeGeometry)
add_subdirectory(examples)

1.2 二级cmakelist文件

cmake_minimum_required( VERSION 3.5 )
# project( ipm ) 

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

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

# 添加Pangolin依赖
find_package( Pangolin )
include_directories( ${Pangolin_INCLUDE_DIRS} )

# 指定源码目录
AUX_SOURCE_DIRECTORY(./src DIR_SRCS) 

add_executable( ipm ${DIR_SRCS} )
target_link_libraries( ipm ${Pangolin_LIBRARIES} )

1.3 链接的库文件

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

# Ceres
find_package(Ceres REQUIRED)
include_directories(${CERES_INCLUDE_DIRS})

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

# Pangolin
find_package( Pangolin )
include_directories( ${Pangolin_INCLUDE_DIRS} )

message("OpenCV_INCLUDE_DIRS: ${OpenCV_INCLUDE_DIRS}")

1.4 debug模式更改

# 1. cmakelists中更改
set(CMAKE_BUILD_TYPE Debug)   

# 2. launch.json中更改
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "/home/lsw/catkin_ws/devel/lib/apa_location/apa_location_ros",    # 这边写上要debug的程序名称


二. 路径的变量

${CMAKE_CURRENT_SOURCE_DIR}                           # 当前处理的CMakeLists.txt所在的目录
${CMAKE_SOURCE_DIR}                                   # 项目所在路径
${PROJECT_SOURCE_DIR}  ${PROJECT_BINARY_DIR}          # 指定工程路径
# 这些路径可以 message("CMAKE_SOURCE_DIR------${CMAKE_SOURCE_DIR}") 编译查看具体路径

三.其他

catkin_make
cmakelists中的project中的名字要与文件夹的名字相同,否则不会进行编译


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值