使用Go编译为可执行文件(windows/linux)
案例場景:創建一個兩層目錄,并在該目錄下創建一個文件,將“Hello World”字符寫入該文件,并讀取出來。
目標:(1)測試案例是否能執行成功;(2)編譯代碼成windows與linux兩種環境下的可執行文件。
測試代碼文件名為main.go,內容如下:
package mainimport ("fmt""io/ioutil""os" )func main() {// 文件夾名_dir := "data/test"exist, err := pathExists(_dir)if err != nil {fmt.Printf("get dir error![%v]\n", err)return}if exist {fmt.Printf("has dir![%v]\n", _dir)} else {fmt.Printf("no dir![%v]\n", _dir)// 創建文件夾//err := os.Mkdir(_dir, os.ModePerm)err := os.MkdirAll(_dir, 0666)if err != nil {fmt.Printf("mkdir failed![%v]\n", err)} else {fmt.Printf("mkdir success!\n")fileName := _dir + "/test.txt"// 創建文件os.Create(fileName)// 打開文件file, _ := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)// 當執行完,關閉文件defer file.Close()// 寫內容到文件中file.WriteString("Hello World!")//讀取文件data, _ := ioutil.ReadFile(fileName)// 打印內容fmt.Println(string(data))}} }func pathExists(path string) (bool, error) {_, err := os.Stat(path)if err == nil {return true, nil}if os.IsNotExist(err) {return false, nil}return false, err }經過調試,上述代碼可正常執行。測試通過。
編譯成windows環境exe可執行文件過程,打開文件所在目錄,在資源路徑框中輸入cmd,打開cmd命令框,通過“go env”查看當期環境變量,以windows10環境為例,默認為windows環境。
// 配置環境變量 SET CGO_ENABLED=1 SET GOOS=windows SET GOARCH=amd64 // 編譯命令 go build main.go編譯出來后就是一個可執行文件main.exe,可用鼠標雙擊直接執行,傳到其他電腦上操作,依然可執行,不依賴第三方包(不像Java會依賴JDK)。
執行后,在main.exe所在目錄下,生成一個data/test/test.txt,并且打開test.txt文件可看到Hello World。
編譯成Linux環境可執行文件,此處除編譯環境參數外,其他步驟與上面類似,編譯參數如下
// 配置參數 SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 // 編譯命令 go build main.go編譯輸出的可執行文件名為main,上傳至centos7.x系統,使用 “chmod +x main”添加可執行權限,執行 "?./main? ",輸出結果與上述windows結果一樣。
備注:上述編譯環境所在的操作系統均為Windows10,即在windows10上開發代碼,編譯輸出windows與linux兩種環境的可執行文件。
總結
以上是生活随笔為你收集整理的使用Go编译为可执行文件(windows/linux)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Microsoft Office Vis
- 下一篇: golang Windows下编译lin