新聞中心
使用方式
$ gf build -h
USAGE
gf build ARGUMENT [OPTION]
ARGUMENT
FILE building file path
OPTION
-n, --name output binary name
-v, --version output binary version
-a, --arch output binary architecture, multiple arch separated with ','
-s, --system output binary system, multiple os separated with ','
-o, --output output binary path, used when building single binary file
-p, --path output binary directory path, default is './bin'
-e, --extra extra custom "GO build" options
-m, --mod like "-mod" option of "go build", use "-m none" to disable go module
-c, --cgo enable or disable cgo feature, it's disabled in default
-/--pack pack specified folder into temporary go file before building and removes it after built
-h, --help more information about this command
EXAMPLE
gf build main.go
gf build main.go --pack public,template
gf build main.go --cgo
gf build main.go -m none
gf build main.go -n my-app -a all -s all
gf build main.go -n my-app -a amd64,386 -s linux -p .
gf build main.go -n my-app -v 1.0 -a amd64,386 -s linux,windows,darwin -p ./docker/bin
DESCRIPTION
The "build" command is most commonly used command, which is designed as a powerful wrapper for
"go build" command for convenience cross-compiling usage.
It provides much more features for building binary:
1. Cross-Compiling for many platforms and architectures.
2. Configuration file support for compiling.
3. Build-In Variables.
PLATFORMS
darwin amd64,arm64
freebsd 386,amd64,arm
linux 386,amd64,arm,arm64,ppc64,ppc64le,mips,mipsle,mips64,mips64le
netbsd 386,amd64,arm
openbsd 386,amd64,arm
windows 386,amd64僅限于交叉編譯使用到?GoFrame?框架的項(xiàng)目,支持絕大部分常見系統(tǒng)的直接交叉編譯。

成都創(chuàng)新互聯(lián)來電聯(lián)系:13518219792,為您提供成都網(wǎng)站建設(shè)網(wǎng)頁設(shè)計(jì)及定制高端網(wǎng)站建設(shè)服務(wù),成都創(chuàng)新互聯(lián)網(wǎng)頁制作領(lǐng)域10年,包括葡萄架等多個(gè)方面擁有多年設(shè)計(jì)經(jīng)驗(yàn),選擇成都創(chuàng)新互聯(lián),為網(wǎng)站錦上添花!
內(nèi)置編譯變量
?build?命令自動(dòng)嵌入編譯變量,這些變量用戶可自定義,并且在運(yùn)行時(shí)通過?gbuild?組件獲取。使用?gf build?的項(xiàng)目將會(huì)默認(rèn)嵌入以下變量:
當(dāng)前?Go?版本
當(dāng)前?GoFrame?版本
當(dāng)前?Git Commit?(如果存在)
當(dāng)前編譯時(shí)間
編譯配置文件
?build?支持同時(shí)從命令行以及配置文件指定編譯參數(shù)、選項(xiàng)。?GoFrame?框架的所有組件及所有生態(tài)項(xiàng)目都是使用的同一個(gè)配置管理組件。以下是一個(gè)簡(jiǎn)單的配置示例供參考(以?config.yaml?為例):
gfcli:
build:
name: "gf"
arch: "all"
system: "all"
mod: "none"
pack: ""
version: "v1.0.0"
output: "./bin"
extra: ""配置選項(xiàng)的釋義同命令行同名選項(xiàng)。
| 名稱 | 必須 | 默認(rèn)值 | 含義 | 示例 |
?name? |
否 | 與程序入口go文件同名 | 生成的可執(zhí)行文件名稱。如果是?windows?平臺(tái),那么默認(rèn)會(huì)加上?.exe?后綴 |
?gf? |
?arch? |
否 | 當(dāng)前系統(tǒng)架構(gòu) | 編譯架構(gòu),多個(gè)以?,?號(hào)分隔,如果是?all?表示編譯所有支持架構(gòu) |
?386,amd64,arm? |
?system? |
否 | 當(dāng)前系統(tǒng)平臺(tái) | 編譯平臺(tái),多個(gè)以?,?號(hào)分隔,如果是?all?表示編譯所有支持平臺(tái) |
?linux,darwin,windows? |
?path? |
否 | ?./bin? |
編譯可執(zhí)行文件存儲(chǔ)的目錄地址 | ?./bin? |
?mod? |
否 | 同?go build -mod?編譯選項(xiàng),不常用 |
?none? |
|
?cgo? |
否 | ?0? |
是否開啟?CGO?,默認(rèn)是關(guān)閉的。如果開啟,那么交叉編譯可能會(huì)有問題。 |
?0? |
?pack? |
否 | 需要打包的目錄,多個(gè)以?,?號(hào)分隔,生成到?packed/data.go? |
?public,template? |
|
?version? |
否 | 程序版本,如果指定版本信息,那么程序生成的路徑中會(huì)多一層以版本名稱的目錄 | ?v1.0.0? |
|
?output? |
否 | 輸出的可執(zhí)行文件路徑,當(dāng)該參數(shù)指定時(shí),?name?和?path?參數(shù)失效,常用于編譯單個(gè)可執(zhí)行文件 |
?./bin/gf.exe? |
|
?extra? |
否 | 額外自定義的編譯參數(shù),會(huì)直接傳遞給?go build?命令 |
||
?varMap? |
否 | 自定義的內(nèi)置變量鍵值對(duì) | |
編譯時(shí)的內(nèi)置變量可以在運(yùn)行時(shí)通過?gbuild?包 構(gòu)建信息?-gbuild? 獲取。
使用示例
$ gf build
2020-12-31 00:35:25.562 start building...
2020-12-31 00:35:25.562 go build -o ./bin/darwin_amd64/gf main.go
2020-12-31 00:35:28.381 go build -o ./bin/freebsd_386/gf main.go
2020-12-31 00:35:30.650 go build -o ./bin/freebsd_amd64/gf main.go
2020-12-31 00:35:32.957 go build -o ./bin/freebsd_arm/gf main.go
2020-12-31 00:35:35.824 go build -o ./bin/linux_386/gf main.go
2020-12-31 00:35:38.082 go build -o ./bin/linux_amd64/gf main.go
2020-12-31 00:35:41.076 go build -o ./bin/linux_arm/gf main.go
2020-12-31 00:35:44.369 go build -o ./bin/linux_arm64/gf main.go
2020-12-31 00:35:47.352 go build -o ./bin/linux_ppc64/gf main.go
2020-12-31 00:35:50.293 go build -o ./bin/linux_ppc64le/gf main.go
2020-12-31 00:35:53.166 go build -o ./bin/linux_mips/gf main.go
2020-12-31 00:35:55.840 go build -o ./bin/linux_mipsle/gf main.go
2020-12-31 00:35:58.423 go build -o ./bin/linux_mips64/gf main.go
2020-12-31 00:36:01.062 go build -o ./bin/linux_mips64le/gf main.go
2020-12-31 00:36:03.502 go build -o ./bin/netbsd_386/gf main.go
2020-12-31 00:36:06.280 go build -o ./bin/netbsd_amd64/gf main.go
2020-12-31 00:36:09.332 go build -o ./bin/netbsd_arm/gf main.go
2020-12-31 00:36:11.811 go build -o ./bin/openbsd_386/gf main.go
2020-12-31 00:36:14.140 go build -o ./bin/openbsd_amd64/gf main.go
2020-12-31 00:36:17.859 go build -o ./bin/openbsd_arm/gf main.go
2020-12-31 00:36:20.327 go build -o ./bin/windows_386/gf.exe main.go
2020-12-31 00:36:22.994 go build -o ./bin/windows_amd64/gf.exe main.go
2020-12-31 00:36:25.795 done! 網(wǎng)頁名稱:創(chuàng)新互聯(lián)GoFrame教程:GoFrame開發(fā)工具-交叉編譯
URL地址:http://m.fisionsoft.com.cn/article/dpcojsp.html


咨詢
建站咨詢
