linux下查看动态链接库so文件的依赖的相关组建
来源:互联网 发布:杭州哪里适合拍照淘宝 编辑:程序博客网 时间:2024/06/06 04:06
我们很多c程序在windows下是以dll形式展现的,在Linux则是以so 形式展现的。
windows一般不会因为编译dll文件的编译器版本不同而出先dll文件不能执行。
但是linux下,不同版本内核的linux下编译的c程序,在其他版本的linux下就容易出现无法执行的问题。主要可能是支持程序的内核相对于编译时的内核较高或者版本相对于编译时的内核较低。
那我们如何看别人给我们提供的动态链接库文件(so后缀的)是否能在当前linux系统下可用呢。首先我们就要看他依赖的相关文件是否存在,查看命令如下:ldd file.so
假如我想看jnative的动态链接库在某个版本的linux下是否被支持,先切换到文件所在目录,然后写下如下命令:
ldd libJNativeCpp.so
如果正常,显示如下:
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0069c000)
libm.so.6 => /lib/tls/libm.so.6 (0x00111000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00562000)
libc.so.6 => /lib/tls/libc.so.6 (0x00134000)
/lib/ld-linux.so.2 (0x0097b000)
如果不正常可能显示如下:
./libJNativeCpp.so: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by ./JNativeCpp.so)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x0047e000)
libm.so.6 => /lib/tls/libm.so.6 (0x00111000)
libc.so.6 => /lib/tls/libc.so.6 (0x0056e000)
libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00c3d000)
/lib/ld-linux.so.2 (0x0097b000)
这里是那个有名的jni第三方类库的默认的lib,上边的错误信息显示就是说我们的libJNativeCpp.so是在2.4内核下编译的,当前内核版本不支持。经过查看,我当前的linux版本的内核是2.6高于libJnativeCpp.so编译时的内核。
- linux下查看动态链接库so文件的依赖的相关组建
- linux下查看动态链接库so文件的依赖的相关组建
- linux下查看动态链接库so文件的依赖的相关组建
- linux下查看动态链接库so文件的依赖的相关组建
- 收藏一个实用技巧:linux下查看动态链接库so文件的依赖的相关组建发布时间
- linux下查看动态链接库so文件的依赖的相关组件
- Linux下如何查看动态链接库so文件的依赖
- linux下查看动态链接库依赖关系的命令
- linux下查看动态链接库依赖关系的命令
- Linux下的动态链接库.so文件的使用
- Linux下的动态链接库.so文件的使用
- Linux下的动态链接库.so文件的使用
- Linux下的动态链接库.so文件的使用
- Linux下的动态链接库(DLL) - so文件
- linux下链接动态库路径相关的/etc/ld.so.conf,ldconfig, PKG_CONFIG_PATH【整理】
- Linux ldd -- 查看可执行文件所依赖的动态链接库
- Linux下的动态库so文件
- Linux 下查看.so动态链接库 常用命令
- HTML5知识点汇总
- 网络基础随堂笔记
- Jlabel、setVisible、JRadioButton、
- springboot入门2—jpa访问mysql数据库
- python求各种距离公式
- linux下查看动态链接库so文件的依赖的相关组建
- 在MAC系统安装Apache Tomcat的详细步骤(.sh command not found?)
- 影响BLE功耗的重要参数
- Linux下安装Mysql5.7.18
- JAVA UUID 生成
- 文章标题
- 几维安全荣获2017 C3安全峰会投资论坛“明日之星 · 最佳创新产品”奖!
- java基础-第一天
- mysql数据库/数据表的创建/查看