cartographer编译失败

2024-01-26 15:20
文章标签 编译 失败 cartographer

本文主要是介绍cartographer编译失败,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

                         cartographer编译失败

cartographer在编译的过程中,报错:multiple rules generate CMakeFiles/ ,提示编译pb.cc 文件冲突;把ninja换成1.8版本。报错消失。

Base path: /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws
Source space: /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/src
Build space: /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/build_isolated
Devel space: /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/devel_isolated
Install space: /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/install_isolated
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~  traversing 4 packages in topological order:
~~  - cartographer (plain cmake)
~~  - cartographer_ros_msgs
~~  - cartographer_ros
~~  - cartographer_rviz
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

==> Processing plain cmake package: 'cartographer'
build.ninja exists, skipping explicit cmake invocation...
==> ninja build.ninja in '/home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/build_isolated/cartographer/install'
ninja: warning: bad deps log signature or version; starting over
[0/1] Re-running CMake...
-- Build type: Release
-- Found installed version of Eigen: /usr/lib/cmake/eigen3
-- Found required Ceres dependency: Eigen version 3.3.7 in /usr/include/eigen3
-- Found required Ceres dependency: glog
-- Found installed version of gflags: /usr/lib/x86_64-linux-gnu/cmake/gflags
-- Detected gflags version: 2.2.2
-- Found required Ceres dependency: gflags
-- Found Ceres version: 1.13.0 installed in: /usr/local with components: [LAPACK, SuiteSparse, SparseLinearAlgebraLibrary, CXSparse, SchurSpecializations, C++11, OpenMP]
20220222 I can find Sphinx
-- Configuring done
-- Generating done
-- Build files have been written to: /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/build_isolated/cartographer/install
ninja: no work to do.
==> ninja -j24 -l24 in '/home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/build_isolated/cartographer/install'
ninja: error: '/home/sukai/workspace/cartographer/cartographer_ws/src/cartographer/scripts/protobuf/build/libprotobuf.a', needed by 'cartographer_pbstream', missing and no known rule to make it
<== Failed to process package 'cartographer': 
  Command '['ninja', '-j24', '-l24']' returned non-zero exit status 1.

Reproduce this error by running:
==> cd /home/sukai/workspace/0/137/cartographer_noetic/cartographer2022-07-11/cartographer_ws/build_isolated/cartographer && ninja -j24 -l24

Command failed, exiting.

解决:换ninja-1.8版

ubuntu 安装ninja

1.安装依赖re2c
root@ubuntu:~# apt-get install re2c
root@ubuntu:~# re2c --version
re2c 1.0.1
2.下载ninja (1.8版本,1.12版本也会报同样错误,其它版本自己试
git clone https://github.com/ninja-build/ninja.git

3.编译ninja
cd ninja
./configure.py --bootstrap  
4.安装ninja
cp ./ninja  /usr/bin 
ninja --version

5.打开控制台进入自己的项目

cd /home/sukai/cartographer_ws/src/cartographer/

依次执行:

protoc cartographer/cloud/proto/*.proto --cpp_out=.
protoc cartographer/common/proto/*.proto --cpp_out=.
protoc cartographer/ground_truth/proto/*.proto --cpp_out=.
protoc cartographer/mapping/proto/*.proto --cpp_out=.
protoc cartographer/mapping/proto/pose_graph/*.proto --cpp_out=.
protoc cartographer/mapping/proto/scan_matching/*.proto --cpp_out=.
protoc cartographer/sensor/proto/*.proto --cpp_out=.
protoc cartographer/transform/proto/*.proto --cpp_out=.
protoc cartographer/kalman_filter/proto/*.proto --cpp_out=.

然后

cd /home/sukai/cartographer_ws

编译:

catkin_make_isolated --install --use-ninja 
source ~/home/sukai/cartographer_ws/install_isolated/setup.bash

这篇关于cartographer编译失败的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/647232

相关文章

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Pyserial设置缓冲区大小失败的问题解决

《Pyserial设置缓冲区大小失败的问题解决》本文主要介绍了Pyserial设置缓冲区大小失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录问题描述原因分析解决方案问题描述使用set_buffer_size()设置缓冲区大小后,buf

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

Nginx启动失败:端口80被占用问题的解决方案

《Nginx启动失败:端口80被占用问题的解决方案》在Linux服务器上部署Nginx时,可能会遇到Nginx启动失败的情况,尤其是错误提示bind()to0.0.0.0:80failed,这种问题通... 目录引言问题描述问题分析解决方案1. 检查占用端口 80 的进程使用 netstat 命令使用 ss

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

pip install jupyterlab失败的原因问题及探索

《pipinstalljupyterlab失败的原因问题及探索》在学习Yolo模型时,尝试安装JupyterLab但遇到错误,错误提示缺少Rust和Cargo编译环境,因为pywinpty包需要它... 目录背景问题解决方案总结背景最近在学习Yolo模型,然后其中要下载jupyter(有点LSVmu像一个