欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

查看Linux下库的信息

程序员文章站 2022-03-26 15:03:43
最近在研究USB key的使用,涉及到各种CPU架构的支持。厂家提供的资料,相当的粗糙,有X86的、Arm64的和MIPS的。库名都一样,压根搞不清对应关系。在朋友的指点下,查了下Linux下对文件信息的解析方法。我觉得还是比较简单实用的,在此把操作过程记录下来。查看文件信息,可以使用file和objdump命令,后一个命令的功能相对丰富些,两者可配合使用。1 objdump命令其主要功能如下:可以使用objdump查看库文件的组成:robin@robin-virtual-mac...

(请保留-> 作者: 罗冰   https://blog.csdn.net/luobing4365)

最近在研究USB key的使用,涉及到各种CPU架构的支持。厂家提供的资料,相当的粗糙,有X86的、Arm64的和MIPS的。库名都一样,压根搞不清对应关系。

在朋友的指点下,查了下Linux下对文件信息的解析方法。我觉得还是比较简单实用的,在此把操作过程记录下来。

查看文件信息,可以使用file和objdump命令,后一个命令的功能相对丰富些,两者可配合使用。

1 objdump命令

其主要功能如下:

查看Linux下库的信息

可以使用objdump查看库文件的组成:

robin@robin-virtual-machine:~ /yinhe$ objdump -a libRockeyARM.a

In archive libRockeyARM.a:
rc4.o:     file format elf64-littl
rw-r--r-- 0/0   1672 Jan  1 08:00 1970 rc4.o

des.o:     file format elf64-little
rw-r--r-- 0/0   4656 Jan  1 08:00 1970 des.o
(下略)

objdump命令可以用来查看符号表,各种函数、对外部库的引用等,是一个不错的辅助工具。不过,对于库支持哪个CPU架构,它好像没法探查出来。

2 file命令

file命令的语法相对简单些,其功能如下:

robin@robin-virtual-machine:~/ yinhe$ file

Usage: file [-bcEhikLlNnprsvzZ0] [--apple] [--extension] [--mime-encoding] [--mime-type]

            [-e testname] [-F separator] [-f namefile] [-m magicfiles] file ...

       file -C [-m magicfiles]

       file [--help]

不过,由于我使用的库经过压缩,直接去读,是看不出什么信息的:

$ file libRockeyARM.a

libRockeyARM.a: current ar archive

 

首先应该使用ar命令,将库解压,然后再去查看文件信息。

$ ls

libRockeyARM.a

$ ar -x libRockeyARM.a

$ ls

ccid.o  descriptors.o  des.o  Dongle_API.o  Dongle_CORE.o  error.o  libRockeyARM.a  linux.o  md5.o  mysha1.o  rc4.o  rsa.o  usb.o

可以看出,库文件解压出很多obj文件。我的目标是查看库所支持的cpu架构,查看其中的任意一个文件,即可得到所需要的信息:

$ file ccid.o

ccid.o: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), not stripped

这个库是由厂家提供的,在银河麒麟的包中,从中可以看出,它是支持ARM64位的。

而在中标麒麟的包中,这个库是支持MIPS的,当然就是龙芯的CPU了:

$ file ccid.o

ccid.o: ELF 64-bit LSB relocatable, MIPS, MIPS64 rel2 version 1 (SYSV), not stripped

windows下也可以使用这些gnu的工具,网址:http://gnuwin32.sourceforge.net/packages.html

不过,objdump好像没有包含在内。Windows下查看obj文件的工具,名字为dumpbin,包含在每个VS的开发工具中,其功能也很强大,在UEFI开发探索26 中,曾经使用过它。

本文地址:https://blog.csdn.net/luobing4365/article/details/107577136