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檔案所在的...