开放的编程资料库

当前位置:我爱分享网 > Go教程 > 正文

Go创建

在本文中,我们展示了如何在Golang中使用gobuild工具构建可执行文件。

Golang自带go工具,用于管理Go源代码。它有几个命令,包括doc、build、test和run。

gobuild命令将导入路径命名的包及其依赖项编译成可执行文件。它不安装可执行文件。

usage: go build [-o output] [build flags] [packages]

这是命令的语法。

$ go version
go version go1.18.1 linux/amd64

我们使用Go版本1.18。

Go构建示例

接下来我们构建一个简单的Go代码示例。

$ mkdir simple
$ cd simple

我们创建并进入项目目录。

$ go mod init com.zetcode/simple

我们使用gomodinit命令创建一个新模块。它生成一个go.mod文件。

package main

import (
    "fmt"
    "runtime"
)

func main() {

    go_ver := runtime.Version()
    os_ver := runtime.GOOS
    arch := runtime.GOARCH

    fmt.Println(go_ver)
    fmt.Println(os_ver)
    fmt.Println(arch)
}

程序打印Go版本、操作系统名称和体系结构。

$ go run main.go
go run main.go
go1.18.1
amd64
linux

gorun命令编译并运行Go程序,但它不构建任何可执行文件。

$ go build
$ ls
go.mod  main.go  simple

可执行文件是使用gobuild命令构建的。

$ ./simple
go1.18.1
amd64
linux

我们运行二进制文件。

$ file simple 
simple: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) ...

我们使用文件工具检查程序。

$ go build -o bin/simple
$ tree
.
├── bin
│   └── simple
├── go.mod
├── main.go
└── simple

通过-o选项,我们可以将二进制文件输出到指定目录。

module com.zetcode/first

go 1.18

要更改默认的可执行文件名称,我们更新模块名称的最后一部分。

$ go build
$ ./first
go1.18.1
amd64
linux

我们以不同的名称构建和运行该程序。

构建过程包括两个步骤:编译和链接。我们使用gotool命令显示这两个步骤。

$ go tool compile main.go

我们编译程序。生成一个main.o文件。

$ file main.o 
main.o: current ar archive
$ ar t main.o 
__.PKGDEF
_go_.o

它是一个中间存档文件。

$ go tool link -o simple main.o

使用gotoollink,我们生成最终的可执行文件。

接下来,我们在Windows上构建程序。这个过程非常相似。

$ mkdir simple
$ cd simple
$ go mod init com.zetcode/simple
go: creating new go.mod: module com.zetcode/simple

我们创建一个项目目录,然后创建一个Go模块。我们使用相同的main.go源文件。

$ go build
$ ls
go.mod  main.go  simple.exe

我们构建程序。在Windows上,可执行文件具有.exe后缀。

$ simple.exe
go1.18.1
windows
amd64

我们运行程序。

$ file simple.exe
simple.exe: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows

我们使用file命令检查程序。

在本教程中,我们使用了gobuild命令。

列出所有Go教程。

未经允许不得转载:我爱分享网 » Go创建

感觉很棒!可以赞赏支持我哟~

赞(0) 打赏