CMakeLists.txt 一些函数应用举例

CMakeLists.txt 一些函数应用举例

1、ROS CMakeLists文件配置

# 指定版本
cmake_minimum_required(VERSION 3.0.2) 
# 添加工程名称 
PRO_name 工程名称 新建文件名称 
project(PRO_name)
# 指定C++ 版本
add_compile_options(-std=c++17)
# 设置C++ debug工具
set(CMAKE_BUILD_TYPE "Debug")
set(CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -std=c++17")
set(CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -O3 -Wall -std=c++17")
add_definitions(-std=c++17)
#添加 ros 支持包
find_package(catkin REQUIRED COMPONENTS
  roscpp 
  rospy
  )
# 设置头文件路径
# INC_LIST  定义变量名
# ${PROJECT_SOURCE_DIR}/include 参数工程名称相对路径 
set(INC_LIST ${PROJECT_SOURCE_DIR}/include)
# 包含头文件
include_directories(${INC_LIST})
include_directories(${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS})
## The catkin_package macro generates cmake config files for your package 
## 宏为包生成cmake配置文件
## Declare things to be passed to dependent projects
## 声明要传递给依赖项目的内容
## INCLUDE_DIRS: uncomment this if your package contains header files
## 如果包包含头文件,请取消对此的注释
## LIBRARIES: libraries you create in this project that dependent projects also need
## 在此项目中创建的依赖项目也需要的库
## CATKIN_DEPENDS: catkin_packages dependent projects also need
## 依赖项目也需要
## DEPENDS: system dependencies of this project that dependent projects also need
## 依赖项目也需要的此项目的系统依赖项
catkin_package(
  # INCLUDE_DIRS include
  # LIBRARIES Elfin_controllers_app
    CATKIN_DEPENDS moveit_core moveit_ros_planning 			moveit_ros_planning_interface roscpp rospy tf tf_conversions
    DEPENDS system_lib
)
# 线程编程
link_libraries(pthread)
# 指定头文件的其他位置
include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)
#添加执行
add_executable(controller  ${SRC_LIST}/controller.cpp)
# 添加其他编译文件路径
# add_subdirectory(${PROJECT_SOURCE_DIR}/src)
##  添加链接库
target_link_libraries(controller
   ${catkin_LIBRARIES}
 )

2、C++ 工程文件配置

# 设置源文件路径列表
# ./Trajectory 路径 SRC_LIST
aux_source_directory(./Trajectory SRC_LIST)
# 生成静态链接库
add_library(OpenGA STATIC ${SRC_LIST})
# 设置头文件路径
set(INC_LIST ./include)
# 包含头文件
include_directories(${INC_LIST})
# 线程编程
link_libraries(pthread)

3、C++ 工程文件配置2

	# 设置源文件路径列表
aux_source_directory(. SRC_LIST)
# 生成静态库的链接
add_library(Trajectory STATIC ${SRC_LIST})
# ros 包
find_package(catkin REQUIRED COMPONENTS
	roscpp
	rospy
	moveit_msgs
	moveit_ros_perception
	moveit_ros_planning_interface
	trajectory_msgs)
# catkin_package
catkin_package(CATKIN_DEPENDS 
	roscpp rospy moveit_core moveit_ros_planning_interface)
# 将链接向上传递
set(tmp
    $<TARGET_OBJECTS:Trajectory>
    PARENT_SCOPE)

参考网站:
1、https://blog.csdn.net/afei__/article/details/81201039

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值