Golang特点以及如何在Linux上运行Windows编译的Go程序
Hello World
// 每个go程序,都必须有一个package main
// 每个go程序,都是.go结尾的
// 一个package(包名)相当于命名空间
package main
// 这是导入一个标准包fmt(format),一般用于格式化输出
import "fmt"
// 这是主函数(所有的函数必须使用func开头)
// 一个函数的返回值,不会放在func前,而是放在参数后面
// 函数左花括号,必须与函数同行,不能写到下一行
func main(){
// go语言语句不需要使用分号(;)结尾
fmt.Println("hello world")
}
Golang特点
- 没有头文件概念.go走天下
- 强类型语言,编译性语言(python弱类型语言,解释性语言)
- 一个go语言的应用程序,在运行的时候是不需要依赖外部库的
- 把执行时所需要的所有库都打包到程序中
- go程序比较大
- 如果import的包在程序中没有使用,那么程序不允许编译
- Go语言是不区分平台的,在Windows下编译一个程序,也可以在Linux下运行,需要两个环境变量来控制
- GOOS:设定运行的平台
- mac:GOOS=darwin
- linux:GOOS=linux
- windows:GOOS=windows
- GOARCH:目标平台的体系架构
- 386:GOARCH=386
- amd64:GOARCH=amd64
- arm:GOPATH=arm
- GOOS:设定运行的平台
为什么在Golang中引用了指定的依赖库没有使用,编译会报错?
因为Golang编译时会将所有的库都打包到程序中,导致应用程序比较大,所以如果你一旦引用了指定的包,却没有使用,Golang为了节省不必要的资源是不允许编译通过的。
Windows下编译Go程序,在Linux下运行
输入如下代码并保存01_helloworld.go
package main
import "fmt"
func main(){
fmt.Println("hello world")
}
进入源码目录,修改GOOS为linux,并编译
set GOOS=linux
# 注意,在哪个bash里面设置了GOOS=linux就在哪个Bash里面执行go build
go build -o hello-linux 01_helloworld.go
将编译好的程序复制到linux服务器中
scp hello-linux root@linuxhost:/tmp/go
进入Linux服务器,查看/tmp/go
目录下是否存在刚刚复制过来的执行文件
运行程序
至此,我们已经成功的在Windows下编译Go程序,Linux上运行Go程序了。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步