日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php+使用go编译,golang如何编译

發布時間:2024/9/27 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php+使用go编译,golang如何编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Go語言中使用 go build 命令主要用于編譯代碼。在包的編譯過程中,若有必要,會同時編譯與之相關聯的包。

go build 有很多種編譯方法,如無參數編譯、文件列表編譯、指定包編譯等,使用這些方法都可以輸出可執行文件。

go build 無參數編譯

代碼相對于 GOPATH 的目錄關系如下:.

└── src

└── chapter11

└── gobuild

├── lib.go

└── main.go

main.go 代碼如下:package main

import (

"fmt"

)

func main() {

// 同包的函數

pkgFunc()

fmt.Println("hello world")

}

lib.go 代碼如下:package main

import "fmt"

func pkgFunc() {

fmt.Println("call pkgFunc")

}

如果源碼中沒有依賴 GOPATH 的包引用,那么這些源碼可以使用無參數 go build。格式如下:go build

在代碼所在目錄(./src/chapter11/gobuild)下使用 go build 命令,如下所示:$ cd src/chapter11/gobuild/

$ go build

$ ls

gobuild lib.go main.go

$ ./gobuild

call pkgFunc

hello world

命令行指令和輸出說明如下:

第 1 行,轉到本例源碼目錄下。

第 2 行,go build 在編譯開始時,會搜索當前目錄的 go 源碼。這個例子中,go build 會找到 lib.go 和 main.go 兩個文件。編譯這兩個文件后,生成當前目錄名的可執行文件并放置于當前目錄下,這里的可執行文件是 go build。

第 3 行和第 4 行,列出當前目錄的文件,編譯成功,輸出 go build 可執行文件。

第 5 行,運行當前目錄的可執行文件 go build。

第 6 行和第 7 行,執行 go build 后的輸出內容。

go build+文件列表

編譯同目錄的多個源碼文件時,可以在 go build 的后面提供多個文件名,go build 會編譯這些源碼,輸出可執行文件,“go build+文件列表”的格式如下:go build file1.go file2.go……

在代碼代碼所在目錄(./src/chapter11/gobuild)中使用 go build,在 go build 后添加要編譯的源碼文件名,代碼如下:$ 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

命令行指令和輸出說明如下:

第 1 行在 go build 后添加文件列表,選中需要編譯的 Go 源碼。

第 2 行和第 3 行列出完成編譯后的當前目錄的文件。這次的可執行文件名變成了 main。

第 4~6 行,執行 main 文件,得到期望輸出。

第 7 行,嘗試調整文件列表的順序,將 lib.go 放在列表的首位。

第 8 行和第 9 行,編譯結果中出現了 lib 可執行文件。

使用“go build+文件列表”方式編譯時,可執行文件默認選擇文件列表中第一個源碼文件作為可執行文件名輸出。

go build+包

“go build+包”在設置 GOPATH 后,可以直接根據包名進行編譯,即便包內文件被增(加)刪(除)也不影響編譯指令。

1) 代碼位置及源碼

相對于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 后獲得期望的輸出。

更多golang知識請關注golang教程欄目。

總結

以上是生活随笔為你收集整理的php+使用go编译,golang如何编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。