go交叉编译,部署到linux上出现cannot execute binray file的解决方案

写在前面:

  了解过常见的项目部署方式后,打算先从最简单的方式开始。没想到踩了大坑。先说下整个部署的过程。

   博主是在window上生成linux上的可执行文件..

 

具体过程:

1.首先按照网上说的方式,使用交叉编译生成linux可执行文件:

 

 

 

 

 2.然后通过ftp,将文件上传到linux上,在运行./main 

事情没有这么简单,博主遇到了以下错误:

cannot execute binray file,不能执行该二进制文件

 

 

 

3.去网上查阅,大部分文章都是说CORAHC 和linux架构不一致,但是我这边并没有什么问题。还是不断地尝试了下,最后还是没有成功。

最后突然想到,linux不能执行,是不是因为生成的格式不是linux平台可以执行的格式。然后,博主用  go env 命令查看本地go的配置

 

 

 

 原来是第一步修改的配置都没有生效,默认的还是windows !!!!

经过查证,现在我们的操作系统都默认用powershell,所以命令不能按照第一步的写,那种是cmd的写法

我们改成:

 

 

 再次去查看 go env

 

 

 发现GOOS被修改。接着去linux上运行,一气呵成!

 

posted @ 2022-07-08 16:10  要坚持的girl  阅读(2185)  评论(0)    收藏  举报