iperf环境搭建后运行报错CANNOT LINK EXECUTABLE: empty/missing DT_HASH in“iperf“ (built with --hash-style=gnu?)

1. 错误信息

如图,环境搭建参考iperf测试recovery模式下WiFi吞吐量,iperf运行后报错误CANNOT LINK EXECUTABLE: empty/missing DT_HASH in"iperf" (built with --hash-style=gnu?),如下图
在这里插入图片描述
错误信息 “CANNOT LINK EXECUTABLE: empty/missing DT_HASH in ‘iperf’ (built with --hash-style=gnu?)” 表示尝试执行的二进制文件(在这个例子中是 iperf)在动态链接时出现了问题。这个问题通常发生在以下几种情况下:

  • 构建和运行环境不匹配: 如果二进制文件是在一个使用了不同的 --hash-style 选项的环境中构建的,然后在一个不兼容的环境中运行,就会出现这个问题。例如,如果二进制文件是用 --hash-style=gnu 编译的,但是运行环境期望的是 --hash-style=both 或者 --hash-style=sysv。
  • 工具链不匹配: 使用不同的编译器或者链接器版本可能会引起这个问题,尤其是如果你在构建二进制文件时使用了一个版本的工具链,而在运行时使用了另一个版本的工具链。
  • 二进制文件损坏: 二进制文件可能在传输或者存储过程中损坏,导致动态链接器无法正确解析它的符号表。

2. 尝试解决方案:

  • 确保构建和运行环境一致: 确保你用来构建 iperf 的编译器和链接器与你用来运行 iperf 的环境中的编译器和链接器是相同的版本。
  • 使用相同的 --hash-style 选项: 如果你控制着 iperf 的构建过程,确保使用与运行环境兼容的 --hash-style 选项。如果不确定使用什么选项,可以尝试将 --hash-style 设置为 both,这样会生成两种风格的哈希表。
  • 重新构建 iperf: 如果你能够访问 iperf 的源代码,尝试在兼容的环境中重新构建它。
  • 检查二进制文件: 使用 file 命令检查 iperf 二进制文件,看看它的构建属性。例如:
    file iperf
    
    这应该会告诉你 iperf 是如何构建的,包括使用了什么 --hash-style 选项。
  • 更新工具链: 如果你的工具链版本过旧,尝试更新到最新版本,以确保兼容性。
  • 使用静态链接: 如果问题依然存在,可以考虑静态链接所有的依赖,这样可以避免动态链接带来的问题。

3. 最终原因:

此错误出现原因为,Android 4.4 与 Android 9.0 的iperf文件不同,使用9.0的iperf在Android 4.4上运行会报如下错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ʚ兔子的先森ɞ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值