老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

go語言是如何編譯的

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如何編譯的詳細內容,更多請關注創新互聯其它相關文章!


本文標題:go語言是如何編譯的
當前網址:http://www.xueling.net.cn/article/ijshih.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 成人九色 | 国产在线无码不卡影视影院 | 91成年人视频 | 99草在线观看 | 黄色一级片视频播放 | 国产精品自产拍在线观看中文 | 成人久久18免费网站 | 扒开腿狂躁女人爽出白浆动态视频 | 最色网ww| 久久不射2019中文字幕 | 亚州国产精品精华液 | xxxxwwww欧美 | 亚洲国产成人精品无码专区 | 亚洲精品久久国产精品37P | 久久精品国产视频 | 久久欧美人人做人人爱 | 中文亚洲爆乳av无码专区 | 精品国产麻豆一区二区三区 | 日本三级午夜在线看激 | 成人免费A级毛片免费 | 人人性人人性碰国产 | 国产熟睡乱子伦午夜视频 | av无码免费岛国动作片片段 | 一区二区三区免费看 | 国产日本无码视频韩国网站写真 | 国产第一页第二页 | 国产女黄3片 | 久久久国产精品无码一区二区 | 国产精品久久久久农村妇女 | 看黄色录像一级片 | 97超碰蝌蚪网人人做人人爽 | 人成午夜大片免费视频 | 欧美一区二区三区四区视频 | caoporon成人超碰公开网站 | 久久久久久久久久久久91 | 91成人观看 | 337P日本欧洲亚洲大胆在线 | 欧美亚洲日本国产其他 | av成人福利 | 欧美激情另欧美做真爱 | 在线一区二区三区四区五区 |