/lib # ldd /jdk/jdk-11.0.2/bin/java /lib64/ld-linux-x86-64.so.2 (0x7f5075e74000) libz.so.1 => /lib/libz.so.1 (0x7f5075e5a000) libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7f5075e74000) libjli.so => /jdk/jdk-11.0.2/bin/../lib/jli/libjli.so (0x7f5075c49000) libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7f5075e74000) libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f5075e74000) Error relocating /jdk/jdk-11.0.2/bin/../lib/jli/libjli.so: __strdup: symbol not found Error relocating /jdk/jdk-11.0.2/bin/../lib/jli/libjli.so: __rawmemchr: symbol not found
时间: 2023-07-23 12:31:05 浏览: 213
解决linux下出现/lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found问题
这个错误提示显示libjli.so库文件中缺少了两个函数__strdup和__rawmemchr的定义,导致链接失败。这通常是由于库文件的版本不兼容或环境变量配置不正确导致的。
要解决这个问题,可以尝试以下几个步骤:
1. 确认系统中是否安装了正确版本的依赖库。可以使用以下命令查看系统中是否安装了对应的库文件:
```
ldconfig -p | grep libdl.so.2
ldconfig -p | grep libc.so.6
```
如果没有安装,则需要安装相应的依赖库。
2. 确认环境变量配置是否正确。可以使用以下命令查看环境变量配置:
```
echo $LD_LIBRARY_PATH
```
如果LD_LIBRARY_PATH中没有包含jdk的lib目录,则需要添加相应的路径。例如:
```
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/jdk/jdk-11.0.2/lib
```
3. 如果以上步骤都无法解决问题,则可能需要重新安装JDK或者更换其他版本的JDK。
阅读全文