ROS控制M100笔记(五、CMakelists的编写)

cmake_minimum_required(VERSION 3.0.2)
project(beginner_tutorials)

## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)


find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  message_generation
)


## Generate messages in the 'msg' folder
 add_message_files(
   FILES
   Num.msg
 )

## Generate services in the 'srv' folder
 add_service_files(
   FILES
   AddTwoInts.srv
 )

## Generate actions in the 'action' folder
# add_action_files(
#   FILES
#   Action1.action
#   Action2.action
# )

## Generate added messages and services with any dependencies listed here
 generate_messages(
   DEPENDENCIES
   std_msgs
 )


catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES beginner_tutorials
#  CATKIN_DEPENDS roscpp rospy std_msgs
#  DEPENDS system_lib
CATKIN_DEPENDS message_runtime std_msgs
)


include_directories(
  include
  ${catkin_INCLUDE_DIRS}
)


add_executable(talker src/talker.cpp)

#为可执行目标添加依赖项到消息生成目标:
add_dependencies(talker talker)#在ROS Groovy及更新版本中,还可以使用以下变量来依赖所有必需的目标:

target_link_libraries(talker ${catkin_LIBRARIES})
#这确保了在使用此包之前生成了该包的消息头。
#如果使用来自你catkin工作空间中的其他包中的消息,则还需要将依赖项添加到各自的生成目标中,因为catkin将所有项目并行构建。


add_executable(listener src/listener.cpp)
add_dependencies(listener listener)
target_link_libraries(listener ${catkin_LIBRARIES})
add_executable(add_two_ints_server src/add_two_ints_server.cpp)
target_link_libraries(add_two_ints_server ${catkin_LIBRARIES})
add_dependencies(add_two_ints_server beginner_tutorials_gencpp)

add_executable(add_two_ints_client src/add_two_ints_client.cpp)
target_link_libraries(add_two_ints_client ${catkin_LIBRARIES})
add_dependencies(add_two_ints_client beginner_tutorials_gencpp)

编译的时候要注意版本,如果CMake版本高于环境会报错,如果报错可以相应调整,一般没事

find_package需要注意的是里面的内容。如果编译报错cannot find reference一类的说明缺少某些包。之前遇见过的是缺少find_package(DJIOSDK REQUIRED)加进去就行了。仅限ros控制M100时。

后面也是比较公式化的。

include_directories中那个include一般是被注释掉的,如果要用到include(和最里面的src同一个文件夹的那个)里面的内容的话需要把注释去掉。

set(CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")

target_link_libraries里面如果加了DJIOSDK的find_package,一般还需要加上

${DJIOSDK_LIBRARIES}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值