Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan arahan bina dalam bahasa go

Cara menggunakan arahan bina dalam bahasa go

青灯夜游
青灯夜游asal
2023-01-17 13:52:123548semak imbas

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.

Cara menggunakan arahan bina dalam bahasa go

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 (perintah kompilasi bahasa go)

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/gobuildkod main.go adalah seperti berikut:

kod lib.go adalah seperti berikut:
.
└── src
    └── chapter11
        └── gobuild
            ├── lib.go
            └── main.go

Jika 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 build
Baris 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 world
Baris 1, pergi ke direktori kod sumber contoh ini.

  • Barisan 2, apabila binaan go memulakan penyusunan, ia akan mencari kod sumber go bagi direktori semasa. Dalam contoh ini, go build akan menemui dua fail, lib.go dan main.go. Selepas menyusun kedua-dua fail ini, fail boleh laku dengan nama direktori semasa dijana dan diletakkan dalam direktori semasa Fail boleh laku di sini ialah go build.

  • Baris 3 dan 4 menyenaraikan fail dalam direktori semasa Penyusunan berjaya dan fail boleh laku go build dikeluarkan.

  • Barisan 5, jalankan fail boleh laku go build dalam direktori semasa.

  • Baris 6 dan 7, kandungan output selepas melaksanakan go build.

  • go build+file list

Apabila menyusun berbilang fail kod sumber dalam direktori yang sama, anda boleh memberikan berbilang nama fail selepas go build. go build akan menyusun kod sumber ini dan mengeluarkan fail boleh laku Format "go build+file list" adalah seperti berikut:

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.go
Barisan 1 dalam go build Kemudian tambah senarai fail dan pilih kod sumber Go yang perlu disusun.

  • Baris 2 dan 3 menyenaraikan fail dalam direktori semasa selepas penyusunan. Kali ini nama fail boleh laku menjadi utama.

  • Baris 4 hingga 6 laksanakan fail utama dan dapatkan output yang dijangkakan.

  • Baris 7, cuba laraskan susunan senarai fail untuk meletakkan lib.go di bahagian atas senarai.

  • Baris 8 dan 9, fail boleh laku lib muncul dalam hasil kompilasi.

  • Petua:

    Apabila disusun menggunakan kaedah "
  • ", fail boleh laku memilih fail kod sumber pertama dalam senarai fail sebagai nama fail boleh laku untuk keluaran secara lalai.

Jika anda perlu menentukan nama fail boleh laku output, anda boleh menggunakan parameter

, lihat contoh di bawah:

go build+文件列表

Dalam kod di atas, satu baris disisipkan antara pergi bina dan senarai fail

parameter, menunjukkan bahawa nama fail output yang ditentukan ialah myexec. -o

Nota:
$ 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+package

go build+文件列表

Selepas menetapkan GOPATH, "go build+package" boleh disusun terus berdasarkan nama pakej, walaupun fail dalam pakej adalah ditambah (tambah) atau dipadam ( Kecuali) tidak menjejaskan arahan penyusunan.

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 还有一些附加参数,可以显示更多的编译信息和更多的操作,详见下表所示。

go build编译时的附加参数
附加参数 备  注
-v 编译时显示包名
-p n 开启并发编译,默认情况下该值为 CPU 逻辑核数
-a 强制重新构建
-n 打印编译时会用到的所有命令,但不真正执行
-x 打印编译时会用到的所有命令
-race 开启竞态检测

表中的附加参数按使用频率排列,读者可以根据需要选择使用。

【相关推荐:Go视频教程编程教学

Atas ialah kandungan terperinci Cara menggunakan arahan bina dalam bahasa go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn