clion运行ros项目出现--【libxmlrpcpp.so报错找不到】

2024-06-09 22:36

本文主要是介绍clion运行ros项目出现--【libxmlrpcpp.so报错找不到】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

问题

error while loading shared libraries: libxmlrpcpp.so: cannot open shared object file: No such file or directory
搜索,该库的位置在/opt/ros//lib,

解决方法

  • 打开文件ld.so.conf
sudo vim /etc/ld.so.conf
  • 在末尾补充
/opt/ros/melodic/lib
  • 执行生效
sudo ldconfig

OK!!!!

拓展

linux 执行程序时,找不到共享库

“error while loading shared libraries: <xxx.so>: cannot open shared object file: No such file or directory”

原因主要有:

  • 操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对,遇到这种情况那就去网上下载并安装上即可。

  • 已经安装了该共享库,但执行需要调用该共享库的程序的时候,程序按照默认共享库路径找不到该共享库文件。

解决方法

##1. 查看该库是已经安装和版本

sudo find / -name <xxx.so>

如果没有安装,就进行安装即可。

sudo find / -name libxmlrpcpp.so
/opt/ros/noetic/lib/libxmlrpcpp.so

2. 如果找到这个库文件,说明已经安装,只是链接不对。

3. 共享库路径设置

安装共享库后要注意共享库路径设置问题,如下:

3.1 安装在/lib或/usr/lib目录下

如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令。
ldconfig命令的用途:

  • 主要是在默认搜寻目录(/lib和/usr/lib) 以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的链接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表。

3.2 安装到了/usr/local/lib

  • 方法一
    如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它“非/lib或/usr/lib”目录下,那么在执行ldconfig命令前,还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中,如下:
# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf# echo "/usr/local/lib" >> /etc/ld.so.conf# ldconfig
  • 方法二
    如果共享库文件安装到了其它“非/lib或/usr/lib”目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径)。那么可以export一个全局变量LD_LIBRARY_PATH,然后运行程序的时候就会去这个目录中找共享库。
    LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库。可以设置多个搜索目录,这些目录之间用冒号分隔开。比如安装了一个到/usr/local/目录下,其中有一大堆库文件在/usr/local//lib下面,则可以在.bashrc或.bash_profile或shell里加入以下语句:
    export LD_LIBRARY_PATH=/usr/local/<xxx>/lib:$LD_LIBRARY_PATH   
    

一般来讲这只是一种临时的解决方案,在没有权限或临时需要的时候使用。
OKK !!!!!

4.符号链接

如果还是没有链接到,查看对应的符号链接

对于某个共享库

sudo ln -s /path/to/libxmlrpcpp.so /usr/lib/libxmlrpcpp.so

这篇关于clion运行ros项目出现--【libxmlrpcpp.so报错找不到】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1046490

相关文章

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

SpringBoot启动报错的11个高频问题排查与解决终极指南

《SpringBoot启动报错的11个高频问题排查与解决终极指南》这篇文章主要为大家详细介绍了SpringBoot启动报错的11个高频问题的排查与解决,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一... 目录1. 依赖冲突:NoSuchMethodError 的终极解法2. Bean注入失败:No qu

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

springboot报错Invalid bound statement (not found)的解决

《springboot报错Invalidboundstatement(notfound)的解决》本文主要介绍了springboot报错Invalidboundstatement(not... 目录一. 问题描述二.解决问题三. 添加配置项 四.其他的解决方案4.1 Mapper 接口与 XML 文件不匹配

springboot集成Deepseek4j的项目实践

《springboot集成Deepseek4j的项目实践》本文主要介绍了springboot集成Deepseek4j的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价... 目录Deepseek4j快速开始Maven 依js赖基础配置基础使用示例1. 流式返回示例2. 进阶

电脑提示找不到openal32.dll文件怎么办? openal32.dll丢失完美修复方法

《电脑提示找不到openal32.dll文件怎么办?openal32.dll丢失完美修复方法》openal32.dll是一种重要的系统文件,当它丢失时,会给我们的电脑带来很大的困扰,很多人都曾经遇到... 在使用电脑过程中,我们常常会遇到一些.dll文件丢失的问题,而openal32.dll的丢失是其中比较

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

SpringBoot项目启动报错"找不到或无法加载主类"的解决方法

《SpringBoot项目启动报错找不到或无法加载主类的解决方法》在使用IntelliJIDEA开发基于SpringBoot框架的Java程序时,可能会出现找不到或无法加载主类com.example.... 目录一、问题描述二、排查过程三、解决方案一、问题描述在使用 IntelliJ IDEA 开发基于

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日... 目录【Java】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪1.日志效果2.实现步