catkin_make catkin_make install 文件结构 build devel install src
编译
01.文件结构:
source /opt/ros/melodic/setup.bash
src:源空间
build:编译空间
devel:开发空间
install:安装空间
02.编译命令
build 和 devel 文件夹由 catkin_make 命令自动创建;
install 文件夹由 catkin_make install 命令自动创建。
catkin_make install 的作用是:创建一个可以运行,但不含源码的工程包,以便于给客户等其他人使用,但同时不至于泄露源码的这么一个作用
catkin_make install 和 cmake install 不是一个作用--
catkin_make -DCATKIN_WHITELIST_PACKAGES="" -DCMAKE_INSTALL_PREFIX=/usr/local/test install
03.具体说明
src
一个 package 下必须包含 CMakeLists.txt 和 package.xml 两个文件
include 和 src 分别存放头文件(*.h)和源程序文件(*.c/*.cpp等);
scripts 存放脚本文件(比如Python文件 *.py,shell文件 *.sh);
launch 存放 launch文件(*.launch),用于批量运行多个可执行文件;
config 存放配置文件(*.yaml等);
build:编译空间
存放CMake和catkin的缓存信息、配置信息和其他中间文件。缓存和中间文件
devel:开发空间
存放编译后生成的目标文件,包括头文件、动态&静态链接库、可执行文件等
catkin_make install 把install文件夹分享给其他人就可以
排查错误:
注意引用的文件不存在,也可能是文件中有个别字符不对应 alone along l1 ll
启动
source /opt/t_ws/devel/setup.bash
nohup roslaunch t_ws_node t_ws.launch >t_ws_node.out 2>&1 &
ROS使用catkin_make编译
基础说明
$ cd ~/catkin_ws
$ catkin_make
$ source ~/catkin_ws/devel/setup.bash
--pkg PKG [PKG ...] 只对某个PKG进行make package
--only-pkg-with-deps ONLY_PKG_WITH_DEPS [ONLY_PKG_WITH_DEPS ...]
将指定的package列入白名单 CATKIN_WHITELIST_PACKAGES,
之编译白名单里的package。该环境变量存在于CMakeCache.txt
源代码--src --> build --> devel
catkin_make之后,应该在catkin工作区的根目录中注意到两个新文件夹:build和devel文件夹。
在build文件夹中将调用cmake和make, 缓存信息和中间文件
在devel文件夹中将包含所有生成的文件和目标,以及setup。* sh文件,以便您可以像安装它一样使用它
目标文件(包括头文件,动态链接库,静态链接库,可执行文件)环境变量等
文件系统层次结构标准(FHS)
一个package可以编译出来多个目标文件(ROS可执行程序、动态静态库、头文件等等)
CMakeLists.txt package 的包名-依赖-源文件-目标文件等编译规则
package.xml -- 报名-版本号-作者-依赖信息等
功能包编译
1. 编译工作空间下的所有功能包
catkin_make
2. 编译工作空间下特定的功能包
catkin_make -DCATKIN_WHITELIST_PACKAGES=“package1;package2”
3. 编译工作空间下特定的功能包
catkin_make --pkg package_name
4.catkin_make安装到指定目录
source /opt/ros/kinetic/setup.bash
catkin_make -DCMAKE_INSTALL_PREFIX=/opt/ros/kinetic install
关于 DCMAKE_INSTALL_PREFIX
关于 DCATKIN_WHITELIST_PACKAGES 说明
01.编译功能包
catkin_make -DCATKIN_WHITELIST_PACKAGES="需要单独编译的包名"
02.但是如再次使用catkin_make编译所有功能包时会出现仅仅只编译上次设置的单独功能包,如果想要再次使用catkin_make编译所有功能包,需要执行:
catkin_make -DCATKIN_WHITELIST_PACKAGES=""
切换到所有功能包
catkin_make install 中和 CmakeList.txt 中的配置
install用于指定在安装时运行的规则。它可以用来安装很多内容,可以包括目标二进制、动态库、静态库以及文件、目录、脚本等
add_executable (Server "Server0327.cpp" "Server0327.h")
target_link_libraries
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}/..
FILES_MATCHING PATTERN "*.h" PATTERN "*.hpp"
)
install(DIRECTORY launch/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch
)
install(DIRECTORY conf/
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/conf
)
参考
https://blog.csdn.net/zhaodeming000/article/details/119884395
ROS简介 https://www.kancloud.cn/zhouws/robot_ustc_mooc/2153666
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
2021-05-24 Linux_更换软件安装源