catkin_make_isolated --install --use-ninja
时间: 2023-04-26 09:05:51 浏览: 275
catkin_make_isolated --install --use-ninja 是一个用于构建ROS软件包的命令。其中,--install选项表示将构建的软件包安装到系统中,--use-ninja选项表示使用Ninja构建工具进行构建。
相关问题
CMake Error at /opt/ros/melodic/share/catkin/cmake/catkin_workspace.cmake:100 (message): This workspace contains non-catkin packages in it, and catkin cannot build a non-homogeneous workspace without isolation. Try the 'catkin_make_isolated' command instead. Call Stack (most recent call first): CMakeLists.txt:69 (catkin_workspace) -- Configuring incomplete, errors occurred! See also "/home/q/catkin_ws/build/CMakeFiles/CMakeOutput.log". See also "/home/q/catkin_ws/build/CMakeFiles/CMakeError.log". Makefile:1020: recipe for target 'cmake_check_build_system' failed make: *** [cmake_check_build_system] Error 1 Invoking "make cmake_check_build_system" failed
这个错误是因为你的工作空间中包含非catkin包,而catkin不能在没有隔离的情况下构建非同质化的工作空间。你可以尝试使用 `catkin_make_isolated` 命令来代替 `catkin_make`,这样可以在隔离的环境中构建你的工作空间。你可以按照以下步骤操作:
1. 进入你的工作空间目录
```
cd /home/q/catkin_ws
```
2. 删除 build 和 devel 目录
```
rm -rf build/
rm -rf devel/
```
3. 运行 `catkin_make_isolated`
```
catkin_make_isolated --install --use-ninja
```
这应该会在你的工作空间目录中创建一个 build_isolated 目录,你可以在其中找到构建的二进制文件和库。
pcl_ros 编译安装
### 编译安装 PCL 和 pcl_ros 的方法
#### 准备工作
为了成功编译并安装 `pcl_ros`,需要先确保已经正确配置好开发环境。这包括但不限于安装必要的依赖项以及设置合适的构建工具。
对于基于 Debian 或 Ubuntu 系统而言,可以通过包管理器来简化这一过程:
```bash
sudo apt-get update && sudo apt-get install -y ros-noetic-pcl-ros
```
上述命令适用于 Noetic 版本的 ROS;如果使用的是其他版本,则需相应调整软件包名称[^1]。
#### 获取源码
当希望通过源代码方式进行更灵活定制化安装时,可以从官方仓库克隆最新版 PCL 及其对应的 ROS 绑定模块 `pcl_ros`:
```bash
git clone https://github.com/PointCloudLibrary/pcl.git ~/catkin_ws/src/
git clone https://github.com/ros-perception/perception_pcl.git ~/catkin_ws/src/
```
这里假设用户的 Catkin 工作空间位于 `~/catkin_ws` 下,并且两个 Git 存储库都将被放置于该路径下的 `src` 文件夹内[^3]。
#### 构建项目
完成以上准备工作之后,在终端执行如下指令来进行实际编译操作:
```bash
cd ~/catkin_ws
catkin_make_isolated --install --use-ninja
source devel/setup.bash
```
其中 `catkin_make_isolated` 是一种推荐用于多包工作的隔离模式构建工具链,而 `--use-ninja` 参数能够加速整个编译流程。最后一步则是激活新创建的工作区以便后续可以直接调用所安装的功能包。
通过遵循这些指导方针,应该能够在大多数情况下顺利地将 Point Cloud Library 集成到 ROS 中去。
阅读全文