Golang工具asm在Linux上出现exec format错误怎么办
Golang工具asm在Linux上出现exec format错误怎么办 大家好,我对Go语言很感兴趣,但还是一名新手。在Linux上运行一个项目时,我遇到了一些麻烦。错误信息如下:
+ Testing ...
mv ecc_pub.bin /home/boom/zkPoD/zkPoD-lib/pod_go/test_data/ecc_pub.bin
go tool asm: fork/exec /usr/local/go/pkg/tool/linux_amd64/asm: exec格式错误
Makefile:69: recipe for target 'test' failed
make: *** [test] Error 1
是不是我的Go环境没有配置好?我发现有一个问题是关于在Kali上因为版本问题无法运行。
Go版本是 go1.17.2 linux/amd64。
Linux系统是 Linux boom 5.4.0-89-generic #100~18.04.1-Ubuntu SMP Wed Sep 29 10:59:42 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux。
谢谢!!!
更多关于Golang工具asm在Linux上出现exec format错误怎么办的实战教程也可以访问 https://www.itying.com/category-94-b0.html
你使用了任何字符串吗?
更多关于Golang工具asm在Linux上出现exec format错误怎么办的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这个错误通常是因为Go工具链的架构不匹配导致的。exec format error表明系统尝试执行一个无法识别的二进制格式。
检查你的Go工具链架构是否与系统匹配:
# 查看当前Go工具链的架构
file /usr/local/go/pkg/tool/linux_amd64/asm
# 应该显示类似这样的信息:
# /usr/local/go/pkg/tool/linux_amd64/asm: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped
如果架构不匹配,需要重新安装正确版本的Go。对于你的系统(x86_64 Ubuntu),应该使用amd64版本:
# 移除当前安装
sudo rm -rf /usr/local/go
# 下载正确版本
wget https://golang.org/dl/go1.17.2.linux-amd64.tar.gz
# 安装
sudo tar -C /usr/local -xzf go1.17.2.linux-amd64.tar.gz
# 更新PATH(如果还没设置)
export PATH=$PATH:/usr/local/go/bin
# 验证安装
go version
如果问题仍然存在,检查是否有残留的旧版本工具链:
# 清理Go缓存
go clean -cache
go clean -modcache
# 重新构建工具链
go install -a std
# 或者完全重新初始化
cd /usr/local/go/src
sudo ./make.bash
另一个可能的原因是文件损坏,可以验证工具链完整性:
# 检查asm工具是否完整
ls -la /usr/local/go/pkg/tool/linux_amd64/asm
md5sum /usr/local/go/pkg/tool/linux_amd64/asm
# 重新安装工具链
go tool dist install asm

