Rumah >pembangunan bahagian belakang >Golang >Cara menggunakan arahan bina dalam bahasa go
Dalam bahasa go, arahan "go build" digunakan terutamanya untuk menyusun kod program bahasa Go boleh dihimpun ke dalam fail boleh laku binari, tetapi fail binari perlu dijalankan secara manual. "go build" mempunyai banyak kaedah kompilasi, seperti kompilasi tanpa parameter, kompilasi senarai fail, kompilasi pakej tertentu, dll. Anda boleh menggunakan kaedah ini untuk mengeluarkan fail boleh laku.
Persekitaran pengendalian tutorial ini: sistem Windows 7, GO versi 1.18, komputer Dell G3.
Bahasa Go ialah bahasa statik yang disusun (sama seperti bahasa C), jadi sebelum menjalankan program bahasa Go, ia mesti disusun ke dalam fail boleh laku binari.
Anda boleh menyusun atur cara bahasa Go melalui perintah go build
atau go run
yang disediakan oleh bahasa Go:
go build
perintah boleh menyusun kod program bahasa Go ke dalam fail boleh laku binari, tetapi kita perlu menjalankan fail binari secara manual; proses Fail sementara akan dijana, tetapi tiada fail boleh laku akan dihasilkan. Ciri ini sangat sesuai untuk program nyahpepijat.
go run
Perintah go build yang digunakan dalam bahasa Go digunakan terutamanya untuk kod kompilasi. Semasa proses penyusunan pakej, jika perlu, pakej yang berkaitan dengannya akan disusun pada masa yang sama. go build mempunyai banyak kaedah kompilasi, seperti kompilasi tanpa parameter, kompilasi senarai fail, kompilasi pakej tertentu, dll. Anda boleh menggunakan kaedah ini untuk mengeluarkan fail boleh laku.
pergi bina kompilasi tanpa parameter
Lokasi khusus kod yang diperlukan dalam bahagian ini ialah. Hubungan direktori kod relatif kepada GOPATH adalah seperti berikut:
./src/chapter11/gobuild
kod main.go adalah seperti berikut:
. └── src └── chapter11 └── gobuild ├── lib.go └── main.goJika tiada rujukan pakej yang bergantung pada GOPATH dalam kod sumber, maka kod sumber ini boleh menggunakan binaan go tanpa parameter. Formatnya adalah seperti berikut:
package main import ( "fmt" ) func main() { // 同包的函数 pkgFunc() fmt.Println("hello world") }Gunakan arahan go build dalam direktori tempat kod itu berada (
package main import "fmt" func pkgFunc() { fmt.Println("call pkgFunc") }), seperti ditunjukkan di bawah:
go buildBaris arahan arahan dan arahan output adalah seperti berikut:
./src/chapter11/gobuild
$ cd src/chapter11/gobuild/ $ go build $ ls gobuild lib.go main.go $ ./gobuild call pkgFunc hello worldBaris 1, pergi ke direktori kod sumber contoh ini.
go build+file list
Gunakan go build dalam direktori tempat kod itu berada (./src. /chapter11/gobuild), Tambah nama fail kod sumber yang akan disusun selepas go build Kodnya adalah seperti berikut:
Arahan baris arahan dan arahan output adalah seperti berikut:go build file1.go file2.go……
$ go build main.go lib.go $ ls lib.go main main.go $ ./main call pkgFunc hello world $ go build lib.go main.go $ ls lib lib.go main main.goBarisan 1 dalam go build Kemudian tambah senarai fail dan pilih kod sumber Go yang perlu disusun.
Jika anda perlu menentukan nama fail boleh laku output, anda boleh menggunakan parameter
, lihat contoh di bawah:go build+文件列表
parameter, menunjukkan bahawa nama fail output yang ditentukan ialah myexec. -o
$ go build -o myexec main.go lib.go $ ls lib.go main.go myexec $ ./myexec call pkgFunc hello world
Apabila menyusun menggunakan kaedah kompilasi "go build+file list", setiap fail dalam senarai fail mestilah kod sumber Go bagi pakej yang sama. Dalam erti kata lain, kod sumber Go untuk semua projek tidak boleh disusun menggunakan kaedah senarai fail seperti C++. Apabila menyusun projek yang kompleks, anda perlu menggunakan kaedah "penyusunan pakej yang ditentukan". Kaedah -o myexec
" lebih sesuai untuk alatan yang ditulis dalam bahasa Go dengan hanya beberapa fail.
go build+packagego build+文件列表
1) Lokasi kod dan kod sumber
本小节需要用到的代码具体位置是./src/chapter11/goinstall。
本套教程所有源码下载地址:https://pan.baidu.com/s/1ORFVTOLEYYqDhRzeq0zIiQ 提取密码:hfyf
相对于GOPATH的目录关系如下:
. └── src └── chapter11 └──goinstall ├── main.go └── mypkg └── mypkg.go
main.go代码如下:
package main import ( "chapter11/goinstall/mypkg" "fmt" ) func main() { mypkg.CustomPkgFunc() fmt.Println("hello world") }
mypkg.go代码如下:
package mypkg import "fmt" func CustomPkgFunc() { fmt.Println("call CustomPkgFunc") }
2) 按包编译命令
执行以下命令将按包方式编译 goinstall 代码:
$ export GOPATH=/home/davy/golangbook/code $ go build -o main chapter11/goinstall $ ./goinstall call CustomPkgFunc hello world
代码说明如下:
第 1 行,设置环境变量 GOPATH,这里的路径是笔者的目录,可以根据实际目录来设置 GOPATH。
第 2 行,-o执行指定输出文件为 main,后面接要编译的包名。包名是相对于 GOPATH 下的 src 目录开始的。
第 3~5 行,编译成功,执行 main 后获得期望的输出。
go build 编译时的附加参数
go build 还有一些附加参数,可以显示更多的编译信息和更多的操作,详见下表所示。
附加参数 | 备 注 |
---|---|
-v | 编译时显示包名 |
-p n | 开启并发编译,默认情况下该值为 CPU 逻辑核数 |
-a | 强制重新构建 |
-n | 打印编译时会用到的所有命令,但不真正执行 |
-x | 打印编译时会用到的所有命令 |
-race | 开启竞态检测 |
表中的附加参数按使用频率排列,读者可以根据需要选择使用。
Atas ialah kandungan terperinci Cara menggunakan arahan bina dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!