go语言exec format error, Failed to launch: could not launch process: not an executable file异常解决方法
golang开发的程序在运行时出现 exec format error 这个异常就表示运行平台不一致,即打包时的go环境为CGO_ENABLED=0 GOOS=linux 而你运行的平台不是linux系统(注意linux下的应用和mac的应用是不同的), 解决方法就是换成相关平台的执行文件。go通过使用不同的环境变量可以打包不同平台运行的程序,当然运行和调试的时候如果你的环境变量不对应也是无法运行
·
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通过使用不同的环境变量可以打包不同平台运行的程序,当然运行和调试的时候如果你的环境变量不对应也是无法运行的。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献7条内容
所有评论(0)