Linux中_使用file_readelf_命令_查看文件_lib库_属性_是x86_还是arm_版本架构

1、查看库或文件是x86还是arm版本:

file libglog.so.0.7.0

或者

readelf -h libapp_test_demo_1.a

2、File命令:

1、功能:
    file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

2、语法
    file(选项)(参数)

3、选项
    -b:列出辨识结果时,不显示文件名称;
    -c:详细显示指令执行过程,便于排错或分析程序执行的情形;
    -f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
    -L:直接显示符号连接所指向的文件类别;
    -m<魔法数字文件>:指定魔法数字文件;
    -v:显示版本信息;
    -z:尝试去解读压缩文件的内容。

4、参数
    文件:要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。
    
5、实例
    1、显示文件类型    
        file -b install.log
        
    2、查看软链接对应文件的文件类型

        file -L file	

3、readelf命令:

1、功能:
    一般用于查看ELF格式的文件信息, 常见的文件如在Linux上的可执行文件,动态库(*.so)或者静态库(*.a) 等包含ELF格式的文件。
    也可以用man命令窥其全貌。它用来显示一个或者多个elf格式的目标文件的信息,可以通过它的选项来控制显示哪些信息。
    
2、语法:
    readelf <选项> elf-文件
    
3、以短长形式给出:
    -a :--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I

    -h :--file-header 显示elf文件开始的文件头信息. 

    -l :--program-headers  ;--segments 显示程序头(段头)信息(如果有的话)。 

    -S :--section-headers  ;--sections 显示节头信息(如果有的话)。 

    -g :--section-groups 显示节组信息(如果有的话)。

    -t :--section-details 显示节的详细信息(-S的)。 

    -s :--syms  ;--symbols 显示符号表段中的项(如果有的话)。 

    -e :--headers 显示全部头信息,等价于: -h -l -S 

    -n :--notes 显示note段(内核注释)的信息。 

    -r :--relocs 显示可重定位段的信息。 

    -u :--unwind 显示unwind段信息。当前只支持IA64 ELF的unwind段信息。 

    -d :--dynamic 显示动态段的信息。 

    -V :--version-info 显示版本段的信息。 

    -A :--arch-specific 显示CPU构架信息。 

    -D :--use-dynamic 使用动态段中的符号表显示符号,而不是使用符号段。 

    -x <number or name> :--hex-dump=<number or name> 以16进制方式显示指定段内内容。number指定段表中段的索引,或字符串指定文件中的段名。 

    -w[liaprmfFsoR]或者

    -debugdump[=line,=info,=abbrev,=pubnames,=aranges,
    =macro,=frames,=frames-interp,=str,=loc,=Ranges] 显示调试段中指定的内容。 

    -I :--histogram 显示符号的时候,显示bucket list长度的柱状图。 

    -v :--version 显示readelf的版本信息。 

    -H :--help 显示readelf所支持的命令行选项。 

    -W :--wide 宽行输出。 

4、参数:
    elf-file(s)就表示那些被检查的文件。可以支持32位,64位的elf格式文件,也支持包含elf文件的文档
    
5、示例:
    1、生成a.out文件,用readelf命令读取一下
    
    readelf -h test
    readelf -h test.debug 
根据引用和引用的信息,您遇到的问题是"/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found",这意味着您的系统缺少GLIBC_2.34版本的GNU C。解决这个问题的方法是将GLIBC_2.34修改为您系统存在的更低的GLIBC版本。根据引用的信息,您可以通过修改ELF文件信息的.gnu.version_r段来实现。具体步骤如下: 1. 使用命令readelf -V main查看原来的版本信息,找到版本为GLIBC_2.34的条目。 2. 根据引用的信息,在文件查找到GLIBC_2.34对应的索引地址。 3. 根据引用的信息,使用readelf -V main_new命令查看修改后的版本信息,确认GLIBC_2.34已被修改为低版本。 4. 确保修改后的版本与您的系统已安装的GLIBC版本相匹配。 通过这样的修改,您应该能够解决"/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found"的问题。请注意,修改ELF文件信息可能会对程序的稳定性和兼容性产生影响,建议在进行修改之前备份文件,并在修改后进行充分的测试。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [修改高版本glibc编译出的elf以支持低版本glibc环境客户机执行](https://blog.csdn.net/w16212/article/details/126577157)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.17' not found 解决办法](https://blog.csdn.net/LEON1741/article/details/78205198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值