go调试时的异常信息

Failed to launch: could not launch process: not an executable file

exec format error

Running tool: ~/.gvm/go/bin/go test -timeout 30s -run ^ExampleM1$ tekin.cn/golearn/src/error

fork/exec /var/folders/fr/vps_kg1d365f52shzymbmv840000gn/T/go-build3908490107/b001/error.test: exec format error
FAIL	tekin.cn/golearn/src/error	0.002s
FAIL

解决方法

golang开发的程序在运行时出现 exec format error 这个异常就表示运行平台不一致,即打包时的go环境为CGO_ENABLED=0 GOOS=linux 而你运行的平台不是linux系统(注意linux下的应用和mac的应用是不同的), 解决方法就是换成相关平台的执行文件。 

如果是在开发的时候,即代码里面运行或者调试时出现这个异常,那就需要重新设置你的go环境变量为实际的平台变量,方法如下:

# go通过使用不同的环境变量可以打包不同平台运行的程序

# mac下的环境变量
go env -w CGO_ENABLED=1 GOOS=darwin GOARCH=amd64

# linux的环境变量
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64

# windows的环境变量
go env -w CGO_ENABLED=0 GOOS=windows GOARCH=amd64

go通过使用不同的环境变量可以打包不同平台运行的程序,当然运行和调试的时候如果你的环境变量不对应也是无法运行的。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐