今天给各位分享linux怎么看so文件的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、怎么打开.so文件
- 2、linux 中怎么看.so 文件
- 3、linux的C编程,怎么使用so文件
- 4、哪个命令可以查看.lib或.so文件
- 5、liunx里面怎么查看so文件
- 6、linux下的so文件如何分析
1、怎么打开.so文件
SO文件为主要与primarily Unknown Apple II File (found on Golden Orchard Apple II CD Rom)相关联的开发者文件 。
打开 SO文件的最快速最容易的方法便是双击文件。这样做可以让Windows智能决定使用正确的程序打开SO文件。
若出现无法打开SO文件的情况,很可能是因为电脑上没有安装查看或编辑SO文件扩展名的恰当程序。
若电脑打开了SO文件,但使用的是错误的应用程序,则需要更改Windows注册文件关联设置。也就是说,Windows正在使用错误的程序关联SO 文件扩展名。
2、linux 中怎么看.so 文件
方法一:
文件名已经带有版本号:
这种情况下很容易就能够看到软链指向的文件的版本号是 1.0.1
方法二:
当文件名不带版本号时:如下所示
使用readelf -a ***.so读取出文件的版本号,不过此时只能读取到主版本号,version:1
方法三:
如果文件名不带版本号,且又想知道具体的版本号的时候怎么办呢?
这时候只能使用傻瓜方法,生成md5值与已知版本号的共享库相对比了。
$ md5sum fcrypt.so.1.0.1
d097363e391e926fdd1687d17bb1ebf7 fcrypt.so.1.0.1
$ md5sum fcrypt.so
d097363e391e926fdd1687d17bb1ebf7 fcrypt.so
两个md5值一致,由此得出版本应该是1.0.1。
3、linux的C编程,怎么使用so文件
linux下的.so文件为共享库,相当于windows下的dll文件,使用方法如下:
在你的工程源代码里包含.h头文件,然后可以调用动态库里的函数,在链接的时候加上如下编译器参数:
-l xx.so
如果你的so文件是以lib开头的,还可以直接这样使用:
-lxx
xx是你的.so文件名
其实使用方法和你使用数学库函数是一样的,源代码中添加
#include math.h,编译的时候,加上-lm参数。
4、哪个命令可以查看.lib或.so文件
ldd 查看可执行文件链接了哪些 系统动态链接库
nm 查看可执行文件里面有哪些符号
strip 去除符号表可以给可执行文件瘦身
如果我们想从可执行程序里面提取出来一点什么文本信息的话,还可以用strings命令
strings
Linux操作系统上面的动态共享库大致分为三类:
1、操作系统级别的共享库和基础的系统工具库
比方说libc.so, libz.so, libpthread.so等等,这些系统库会被放在/lib和/usr/lib目录下面,如果是64位操作系统,还会有/lib64和/usr /lib64目录。如果操作系统带有图形界面,那么还会有/usr/X11R6/lib目录,如果是64位操作系统,还有/usr/X11R6 /lib64目录。此外还可能有其他特定Linux版本的系统库目录。
这些系统库文件的完整和版本的正确,确保了Linux上面各种程序能够正常的运行。
2、应用程序级别的系统共享库
并非操作系统自带,但是可能被很多应用程序所共享的库,一般会被放在/usr/local/lib和/usr/local/lib64这两个目录下面。很多你自行编译安装的程序都会在编译的时候自动把/usr/local/lib加入gcc的-L参数,而在运行的时候自动到/usr/local /lib下面去寻找共享库。
以上两类的动态共享库,应用程序会自动寻找到他们,并不需要你额外的设置和担心。这是为什么呢?因为以上这些目录默认就被加入到动态链接程序的搜索路径里面了。Linux的系统共享库搜索路径定义在/etc/ld.so.conf这个配置文件里面。这个文件的内容格式大致如下:
/usr/X11R6/lib64
/usr/X11R6/lib
/usr/local/lib
/lib64
/lib
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/ImageMagick/lib
假设我们自己编译安装的ImageMagick图形库在/usr/local/ImageMagick目录下面,并且希望其他应用程序都可以使用 ImageMagick的动态共享库,那么我们只需要把/usr/local/ImageMagick/lib目录加入/etc/ld.so.conf文件里面,然后执行:ldconfig 命令即可。
ldcofig将搜索以上所有的目录,为共享库建立一个缓存文件/etc/ld.so.cache。为了确认ldconfig已经搜索到ImageMagick的库,我们可以用上面介绍的strings命令从ld.so.cache里面抽取文本信息来检查一下:
strings /etc/ld.so.cache | grep ImageMagick
输出结果为:
/usr/local/ImageMagick/lib/libWand.so.10
/usr/local/ImageMagick/lib/libWand.so
/usr/local/ImageMagick/lib/libMagick.so.10
/usr/local/ImageMagick/lib/libMagick.so
/usr/local/ImageMagick/lib/libMagick++.so.10
/usr/local/ImageMagick/lib/libMagick++.so
已经成功了!
3、应用程序独享的动态共享库
有很多共享库只被特定的应用程序使用,那么就没有必要加入系统库路径,以免应用程序的共享库之间发生版本冲突。因此Linux还可以通过设置环境变量LD_LIBRARY_PATH来临时指定应用程序的共享库搜索路径,就像我们上面举的那个例子一样,我们可以在应用程序的启动脚本里面预先设置 LD_LIBRARY_PATH,指定本应用程序附加的共享库搜索路径,从而让应用程序找到它。
5、liunx里面怎么查看so文件
方法一:
文件名已经带有版本号:
这种情况下很容易就能够看到软链指向的文件的版本号是 1.0.1
方法二:
当文件名不带版本号时:
使用readelf -a ***.so读取出文件的版本号,不过此时只能读取到主版本号,version:1
6、linux下的so文件如何分析
使用objdump反汇编,用readelf 查看文件结构, 这两个工具在软件包 binutils中.
安装 binutils:
fedora,redhat: yum install binutils
ubuntu,Mint等: apt-get install binutils
Archlinux: pacman -S binutils
用Intel格式汇编输出反汇编指令: objdump -d -M intel xxxx.so
linux怎么看so文件的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、linux怎么看so文件的信息别忘了在本站进行查找喔。