cannot open shared object file: No such file or directory

简介: cannot open shared object file: No such file or directory

今天集成声网native rtc-linux-server-sdk的时候,遇到报错:

Caused by: java.lang.UnsatisfiedLinkError: /usr/java/packages/lib/libbinding.so: libagora_rtc_sdk.so: cannot open shared object file: No such file or directory
 at java.base/jdk.internal.loader.NativeLibraries.load(Native Method) ~[na:na]
 at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388) ~[na:na]
 at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232) ~[na:na]
 at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174) ~[na:na]
 at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:315) ~[na:na]
 at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:287) 

解决方式

配置环境变量

[root@dev ~]# vim ~/.bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/packages/lib

主要是

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/java/packages/lib

这里的/usr/java/packages/lib就是放我们存放so文件的地方

[root@dev lib]# ll /usr/java/packages/lib/
总用量 36392
-rwxr-xr-x 1 root root   143088 11月 17 15:10 agora_rtm.jar
-rwxr-xr-x 1 root root    60532 11月 17 15:10 authentication-2.0.0.jar
-rwxr-xr-x 1 root root   335042 11月 17 15:10 commons-codec-1.11.jar
-rwxr-xr-x 1 root root  2510096 11月 17 15:10 hutool-all-5.8.20.jar
-rwxr-xr-x 1 root root   739728 11月 28 15:15 libagora-fdkaac.so
-rwxr-xr-x 1 root root  3472144 11月 28 15:15 libagora-ffmpeg.so
-rwxr-xr-x 1 root root 17865952 11月 28 15:15 libagora_rtc_sdk.so
-rwxr-xr-x 1 root root 10569400 11月 17 15:10 libagora_rtm_sdk.so
-rwxr-xr-x 1 root root  1556224 11月 28 15:15 libbinding.so
-rwxr-xr-x 1 root root       34 11月 17 15:10 PLACEHOLDER

然后是这个文件/etc/ld.so.conf

[root@dev lib]# vim /etc/ld.so.conf
include ld.so.conf.d/*.conf

/usr/java/packages/lib
[root@dev ldconfig

添加/usr/java/packages/lib到末尾

然后执行

[root@dev lib]# ldconfig
相关文章
|
4月前
|
应用服务中间件 Shell 网络安全
nginx安装提示 libssl.so.3: cannot open shared object file: No
【8月更文挑战第1天】### 原因 未将安装的ssl中的`libssl.so.3`链接到`/usr/lib`导致缺失。 ### 解决方案 1. 检查openssl是否已安装,若为低版本则需重装。 ```sh whereis openssl
1906 6
|
4月前
|
Ubuntu
Ubuntu22.04,AOSP编译报错: libncurses.so.5: cannot open shared object file: No such file
本文描述了在Ubuntu 22.04系统上编译AOSP时遇到的`libncurses.so.5`缺失错误,并提供了通过安装相应库解决该问题的步骤。
430 0
|
5月前
|
关系型数据库 MySQL
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
364 2
|
22天前
|
存储 Java 程序员
Java基础的灵魂——Object类方法详解(社招面试不踩坑)
本文介绍了Java中`Object`类的几个重要方法,包括`toString`、`equals`、`hashCode`、`finalize`、`clone`、`getClass`、`notify`和`wait`。这些方法是面试中的常考点,掌握它们有助于理解Java对象的行为和实现多线程编程。作者通过具体示例和应用场景,详细解析了每个方法的作用和重写技巧,帮助读者更好地应对面试和技术开发。
76 4
|
2月前
|
Java
Java Object 类详解
在 Java 中,`Object` 类是所有类的根类,每个 Java 类都直接或间接继承自 `Object`。作为所有类的超类,`Object` 定义了若干基本方法,如 `equals`、`hashCode`、`toString` 等,这些方法在所有对象中均可使用。通过重写这些方法,可以实现基于内容的比较、生成有意义的字符串表示以及确保哈希码的一致性。此外,`Object` 还提供了 `clone`、`getClass`、`notify`、`notifyAll` 和 `wait` 等方法,支持对象克隆、反射机制及线程同步。理解和重写这些方法有助于提升 Java 代码的可读性和可维护性。
|
7月前
|
Java
Java Object 类
5月更文挑战第16天
|
4月前
|
Java
【Java基础面试二十】、介绍一下Object类中的方法
这篇文章介绍了Java中Object类的常用方法,包括`getClass()`、`equals()`、`hashCode()`、`toString()`、`wait()`、`notify()`、`notifyAll()`和`clone()`,并提到了不推荐使用的`finalize()`方法。
【Java基础面试二十】、介绍一下Object类中的方法
|
3月前
|
Python
类与面向对象编程(Object-Oriented Programming, OOP)
类与面向对象编程(Object-Oriented Programming, OOP)
|
4月前
|
前端开发 Java 编译器
【前端学java】java中的Object类和前端中的Object有什么区别(9)
【8月更文挑战第10天】java中的Object类和前端中的Object有什么区别
45 0
【前端学java】java中的Object类和前端中的Object有什么区别(9)
|
4月前
|
算法 Java
12 Java常用类(一)(内部类+object类+包装类)
12 Java常用类(一)(内部类+object类+包装类)
38 5