1.初学Go就在windows上写了个"Hello,World!",在windown上编译了一下,生成了可执行文件。运行无问题
go build text.go
.\text.exe
Hello,World!
2.但是按照网上的教程进行生成linux的可执行文件时出现报错
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o text text.go
3.将编译的二进制文件上传的服务器后运行报错,去网上查阅,大部分文章都是说CORAHC 和linux架构不一致,但是我这边并没有什么问题。
[root@database awesomeProject1]# ./text
-bash: ./text: cannot execute binary file
4.后来查到,linux不能执行,可能因为生成的格式不是linux平台可以执行的格式。然后用 go env 命令查看本地go的配置
原来是第一步修改的配置没有生效,默认的还是windows
经过查证,现在我们的操作系统都默认用powershell,所以命令不能按照第一步的写,那种是cmd的写法
改成:
$env:GOOS="linux"
然后再看,配置已经修改为linux了
5.然后再重新编译文件后上传的linux服务器。测试运行正常
[root@database ~]# chmod +x text
[root@database ~]# ./text
Hello,World!