Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so

1、nm [options] file 列出file中的所有符号

[option]

 -c   将符号转化为用户级的名字

 -s   当用于.a文件即静态库时,输出把符号名映射到定义该符号的模块或成员名的索引

 -u   显示在file外定义的符号或没有定义的符号

 -l   显示每个符号的行号,或为定义符号的重定义项

2、ar {dmpqrtx} [member] archive file 用于操作高度结构化的存档文件(.a)

[options]

-c    创建存档文件

-s    创建或升级从符号到定义他们的成员之间的交叉索引映射表

-r    替换archive中的同名文件或添加新文件

-q    不检查而直接添加文件到存档文件的末尾

ranlib [-v|-V] file 的作用跟ar -s file相同

3、ldd [options] file 列出file运行所需的共享库

[options]

-d    执行重定位并报告所有丢失的函数

-r    执行对函数和对象的重定位并报告丢失的任何函数或对象

4、 ldconfig [options] [libs] 决定位于目录/usr/lib和/lib下的共享库所需的运行的链接,这些链接由[libs]指定并被保存到/etc/ld.so.conf中

[options]

-p    打印文件/etc/ld.so.conf的内容

-v    更新/etc/ld.so.conf

5、 ld.so 动态链接/加载器

ld.so使用的两个环境变量

$LD_LIBRARY_PATH 告诉ld.so去哪里查找保存在非标准目录下的共享库,冒号分隔,对应文件/etc/ld.so.conf

$LD_PRELOAD告诉ld.so用户指定的在所有库加载之前加载的库所在的目录,空格分隔,对应文件/etc/ld.so.preload

http://blog.chinaunix.net/uid-22780578-id-4008731.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "ld-linux-aarch64.so.1 bad elf interpreter no such file" 是一个错误信息,通常出现在尝试运行一个二进制文件时。 这个错误通常是由于缺少所需的解释器文件引起的。ld-linux-aarch64.so.1 是一个用于解释和执行 ELF(可执行和可链接格式)文件的动态链接器。当系统无法找到该解释器文件时,就会产生这个错误。 要解决这个问题,可以尝试以下几步: 1. 检查文件路径:首先,确保该解释器文件实际存在于系统上。您可以使用命令 `ls /lib/ld-linux-aarch64.so.1` 来检查文件是否存在。如果文件不存在,您可能需要重新安装或更新 glibc 包。 2. 检查依赖关系:执行二进制文件之前,需要确保其所需的依赖项已安装并可用。您可以使用命令 `ldd <binary_file>` 来查看二进制文件的依赖关系。确保所有依赖的文件都存在并且路径正确。 3. 设置 LD_LIBRARY_PATH:如果文件存在于非默认路径中,可以将其路径添加到环境变量 LD_LIBRARY_PATH 中。例如,`export LD_LIBRARY_PATH=/custom/path`。然后再次尝试执行二进制文件。 4. 更新系统和软件包:确保系统和相关软件包是最新的,这可以通过运行 `sudo apt update && sudo apt upgrade`(适用于基于Debian的系统)或相应的包管理器命令来完成。 如果尝试了以上步骤后问题仍未解决,可能需要进一步查看系统和应用程序的日志来找出导致错误的原因。 ### 回答2: 这个错误信息表示在运行一个二进制文件时,系统找不到所需的解释器。在这种情况下,错误信息是&ldquo;ld-linux-aarch64.so.1 bad elf interpreter no such file”。 这个错误通常发生在ARM体系结构的设备上,说明运行的二进制文件需要一个名为&ldquo;ld-linux-aarch64.so.1”的解释器,但系统找不到这个解释器。 解决这个问题的一种方法是安装所需的解释器。你可以尝试运行以下命令来安装解释器: ``` sudo apt-get install libc6:arm64 ``` 这个命令会安装一个包含所需解释器的软件包。安装完成后,你应该能够成功运行二进制文件。 你还可以尝试使用其他解释器,例如&ldquo;ld-linux.so.3”,来查看是否能够解决问题。在终端中运行以下命令更改解释器: ``` sudo ln -sf /lib/ld-linux-aarch64.so.1 /lib/ld-linux.so.3 ``` 这将创建一个符号链接,使&ldquo;ld-linux.so.3”指向正确的解释器。 如果以上解决方法无效,可能是由于二进制文件不兼容当前系统,或存在其他系统配置问题。在这种情况下,你可能需要检查二进制文件是否适用于当前操作系统和架构,并查找其他解决方法。 ### 回答3: 这个错误信息表明,在尝试运行一个程序时,操作系统无法找到名为"ld-linux-aarch64.so.1"的动态链接器(也被称为ELF解释器)。这通常意味着系统缺少了关键的文件。 通常,这个错误出现在ARM 64位架构的设备上,比如某些基于ARM处理器的嵌入式设备或单板计算机。 要解决这个问题,可以尝试以下几种方法: 1. 确认是否安装了必需的文件:检查系统上是否已经安装了适用于ARM 64位架构的libc(C)和其他必需的文件。这些文件的名称可能会有所不同,具体取决于你使用的操作系统和发行版。如果缺少这些文件,可以尝试安装它们。 2. 更新或重装程序:如果出现此错误是因为特定程序本身损坏或缺少关键资源文件,可以尝试更新或重新安装该程序。确保从官方网站或可信的软件源获取最新版本。 3. 检查运行环境:确认程序是否是为ARM 64位架构编译的,如果不是,则无法在该架构上运行。可以尝试获取适用于ARM 64位架构的正确版本程序。 4. 检查系统架构:确认操作系统的架构与程序要求的架构一致。如果操作系统是32位的,而程序要求64位,或者架构不匹配,也会导致此错误。 5. 参考社区和官方文档:对于特定的嵌入式设备或单板计算机,可能有针对该平台的特定解决方案和建议。可以查阅官方文档、开发者论坛或社区以获取更多支持。 需要注意的是,具体的解决方法可能因操作系统、设备和程序而异。如果以上方法都没有解决问题,可能需要更详细的信息和调试来确定具体原因,并进一步解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值