go中生成可執行檔案

2021-10-10 03:49:41 字數 1861 閱讀 4813

3.2 多檔案編譯

3.3 go專案編譯

四、其它

這裡介紹對go專案進行打包編譯生成可執行檔案,其實包含引數的傳遞、目標可執行檔案型別、打包物件。

go專案的編譯命令為go build,編譯包,生成可執行檔案(包含main包),預設生成位置在當前目錄下。 (注意不能生成包檔案)。如下:

go build

引數有:

-ldflags:用於編譯時設定變數值

-o:指定編譯生成的目標檔名

-v:編譯時顯示包名

另外編譯預設變數:

goos:指定編譯生成可執行檔案的執行系統,常用的有:windows、linux、darwin

goarch:指定編譯生成可執行檔案的執行系統架構,常用的有:amd64、arm

其中引數傳遞-ldflags的二級引數為:

-x:設定包中的變數值

-s:去掉符號表,異常時沒有檔名或行號資訊

-w:去掉dwarf除錯資訊

3.1 帶引數編譯

3.1.1 目標go檔案

這裡目標go檔案param_main.go我放在with_param目錄下。

package main

import

"fmt"

//引數定義,由外部傳值

var(

env string

version string

)func

main()

編譯命令:

goos=darwin goarch=amd64 go build  -o "with_param/param_main" -ldflags "-w -s -x main.env=test -x main.version=1.0" with_param/param_main.go
執行編譯命令後,後成可執行檔案param_main,執行檔案後,輸出:

env:test version:1.0
3.2 多檔案編譯

在multi目錄下新建目標go檔案hello.go和multi_main.go,如下:

package main

func

dohello

(name string

)

package main

func

main()

編譯命令:

goos=darwin goarch=amd64 go build  -o "multi/multi_main"  multi/multi_main.go multi/hello.go
執行編譯命令後,後成可執行檔案multi_main,執行檔案後,輸出:

execute main
3.3 go專案編譯

go專案編譯直接在專案根目錄下編譯即可(不需要單獨指定編譯目錄),如:

goos=darwin goarch=amd64 go build  -o "targte_exe" -ldflags "-w -s -x main.env=test -x main.version=1.0"
4.1 go install

除了使用go build編譯外,還可以使用go install,直接生成庫。

4.2 go目錄結構

專案結構目錄結構通常為:

根路徑下:

src:原始檔

pkg:包檔案

bin:可執行檔案

go語言生成可執行檔案

由於依賴了github.com裡的beego,所以要加github.com的上級目錄到gopath。1.開啟cmd命令視窗,用命令設定要編譯包以及依賴包所在路徑的環境變數,即gopath 該設定只對該視窗生效 set gopath e programmerroute go development 2...

生成可執行檔案過程

c語言編譯全過程 編譯的概念 編譯程式讀取源程式 字元流 對之進行詞法和語法的分析,將高階語言指令轉換為功能等效的彙編 再由匯程式設計序轉換為機器語言,並且按照作業系統對可執行檔案格式的要求鏈結生成可執行程式。編譯的完整過程 c源程式 預編譯處理 c 編譯 優化程式 s asm 匯程式設計序 obj...

pycharm生成可執行檔案

1.pycharm開啟terminal對話方塊 view tool windows terminal 2.安裝pyinstaller pip3 install pyinstaller 3.將py檔案轉換為相應作業系統可執行檔案 pyinstaller f onefile py 4.開啟py檔案所在的...