GO语言学习笔记(三)初写GO程序

1、第一个程序
名称:helloworld.gopython

package main
import "fmt"
func main() {
        fmt.Println("hello world!")
}

知识点1:Go语言的代码文件通常是以.go做为后缀。linux

运行helloworld.go
执行:go run helloworld.go
输出结果:hello world!
知识点2:使用run参数的意思是编译并运行。windows

编译成二进制文件
执行:go build -o helloworld helloworld.go
执行:ls查看
helloworld helloworld.go
在当前目录下会产生一个helloworld的二进制文件,咱们能够直接运行这个二进制文件
执行二进制文件:./helloworld
执行结果:hello world!架构

分析这段GO语言代码:
1)package main:这一行是申明包名,全部Go语言编写的文件都是以“package xxxx”开头,对于独立运行的执行文件,第一行必须是“package main”ide


2)import "fmt":表示导入“fmt”包,“fmt”包是Go语言标准库中的包,因此不须要下载和安装。“fmt”包的做用是用于字符串的格式化输出。另外被引用的其余package被称为库或者称为包函数


3)func main() {} :这一行是程序中的main主函数,也成为入口函数。Go程序在执行的时候,首先调用的函数就是main函数,大部分的语言都是以main做为逻辑上的入口函数,好比:c、python等。另外在Go语言中,函数都是使用func关键字来定义函数名称工具


4)fmt.Println("hello world!") :这一行是调用fmt包的函数,把hello world字符串输出到控制台。字符串由双引号包裹、表示是字符串类型学习

2、交叉编译
什么是交叉编译:
就是在一个平台上能够编译另外一个平台的二进制代码文件。例如,咱们使用的是Mac系统,在Mac上能够编译出可在Linux或者windwos系统上运行的可执行程序。
不一样系统平台的对比图:
GO语言学习笔记(三)初写GO程序
交叉编译示例:(在mac系统上生成linux64位的可执行程序)
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build helloword.go
解释:CGO_ENABLED:指明cgo工具是否可用的标识,1位启用cgo工具,0是关闭,交叉编译不支持cgo工具
GOOS:指定目标操做系统
GOARCH:执行目标操做系统的架构,也就是是多少位的操做系统
这样生成的helloworld二进制包就能够拷贝到linux上运行了。
列举不一样平台的交叉编译
1)在Mac上编译LInux和Window 64位可执行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build helloword.goui

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build helloword.go操作系统

2)Linux上编译Mac和Windows 64位可执行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build helloword.go

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build helloword.go

3)Windows上编译Mac和Linux 64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build helloword.go

SET CGO_ENABLED=0SET GOOS=linuxSET GOARCH=amd64go build helloword.go

相关文章
相关标签/搜索