ROS-C++制作deb包

制作deb文件

首先看下我们的代码架构:

功能包1
	├── CMakeLists.txt 我们需要在这里添加CmakeLists.txt
	├── src
	│   ├── CMakeLists.txt
	│   └── 功能包2
	│       ├── CMakeLists.txt
	│       └── src
	│           └── xxxx.cpp

1. 编写Cmakelists.txt文件

cmake_minimum_required(VERSION 3.10.2)

project(packet VERSION 0.0.4)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
)

find_package(PCL REQUIRED)
find_package(OpenCV REQUIRED)

include_directories(include ${catkin_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS})

add_executable(packet_node src/xxxxx.cpp)

target_link_libraries(packet_node
    ${catkin_LIBRARIES}
    ${PCL_LIBRARIES}
    ${OpenCV_LIBS}
)
// 开始添加cpack配置
include(InstallRequiredSystemLibraries)

set(CPACK_PACKAGE_NAME ${PROJECT_NAME})
set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
set(CPACK_PACKAGE_DIRECTORY ${CMAKE_BINARY_DIR})
set(CPACK_SOURCE_IGNORE_FILES build)
set(CPACK_PACKAGE_CONTACT "xxx@qq.com")
set(CPACK_PACKAGE_DESCRIPTION "packet program")

include(GNUInstallDirs)
install(TARGETS packet_node
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

include(CPack)

2. 编译

step1:在该功能包1下,执行相关命令:

cd 功能包1
mkdir build && cd build
cmake ..
此时会在build目录下生成两个CPack配置文件: CPackConfig.cmake 和 CPackSourceConfig.cmake,前者用于生成安装文件,后者用于生成源代码

step2:生成源码包

cpack --config CPackSourceConfig.cmake

执行后会生成4个源码压缩包

step3:生成deb包

cpack -G DEB

至此,在build文件夹,即可看到关于功能包1的deb包。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徽州SLAM李

如果觉得不错,打赏一下哦,嘻

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值