亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

使用Go編譯為可執(zhí)行文件的方法實現(xiàn)

 更新時間:2025年04月28日 09:48:25   作者:dkgee  
本文主要介紹了使用Go編譯為可執(zhí)行文件的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

案例場景:創(chuàng)建一個兩層目錄,并在該目錄下創(chuàng)建一個文件,將“Hello World”字符寫入該文件,并讀取出來。

目標:(1)測試案例是否能執(zhí)行成功;(2)編譯代碼成windows與linux兩種環(huán)境下的可執(zhí)行文件。

測試代碼文件名為main.go,內(nèi)容如下:

package main

import (
	"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)
		// 創(chuàng)建文件夾
		//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"
			// 創(chuàng)建文件
			os.Create(fileName)
			// 打開文件
			file, _ := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)
			// 當執(zhí)行完,關(guān)閉文件
			defer file.Close()
			// 寫內(nèi)容到文件中
			file.WriteString("Hello World!")
			//讀取文件
			data, _ := ioutil.ReadFile(fileName)
			// 打印內(nèi)容
			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
}

經(jīng)過調(diào)試,上述代碼可正常執(zhí)行。測試通過。

編譯成windows環(huán)境exe可執(zhí)行文件過程,打開文件所在目錄,在資源路徑框中輸入cmd,打開cmd命令框,通過“go env”查看當期環(huán)境變量,以windows10環(huán)境為例,默認為windows環(huán)境。

// 配置環(huán)境變量
SET CGO_ENABLED=1
SET GOOS=windows
SET GOARCH=amd64
// 編譯命令
go build main.go

編譯出來后就是一個可執(zhí)行文件main.exe,可用鼠標雙擊直接執(zhí)行,傳到其他電腦上操作,依然可執(zhí)行,不依賴第三方包(不像Java會依賴JDK)。

執(zhí)行后,在main.exe所在目錄下,生成一個data/test/test.txt,并且打開test.txt文件可看到Hello World。

編譯成Linux環(huán)境可執(zhí)行文件,此處除編譯環(huán)境參數(shù)外,其他步驟與上面類似,編譯參數(shù)如下

// 配置參數(shù)
SET CGO_ENABLED=0 
SET GOOS=linux 
SET GOARCH=amd64 
// 編譯命令
go build main.go

編譯輸出的可執(zhí)行文件名為main,上傳至centos7.x系統(tǒng),使用 “chmod +x main”添加可執(zhí)行權(quán)限,執(zhí)行 " ./main  ",輸出結(jié)果與上述windows結(jié)果一樣。

備注:上述編譯環(huán)境所在的操作系統(tǒng)均為Windows10,即在windows10上開發(fā)代碼,編譯輸出windows與linux兩種環(huán)境的可執(zhí)行文件。

到此這篇關(guān)于使用Go編譯為可執(zhí)行文件的方法實現(xiàn)的文章就介紹到這了,更多相關(guān)Go編譯為可執(zhí)行文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go語言中使用ent做關(guān)聯(lián)查詢的示例詳解

    go語言中使用ent做關(guān)聯(lián)查詢的示例詳解

    go語言的ent框架是facebook開源的ORM框架,是go語言開發(fā)中的常用框架,而關(guān)聯(lián)查詢又是日常開發(fā)中的常見數(shù)據(jù)庫操作,故文本給出一個使用ent做關(guān)聯(lián)查詢的使用示例,需要的朋友可以參考下
    2024-02-02
  • Go prometheus metrics條目自動回收與清理方法

    Go prometheus metrics條目自動回收與清理方法

    這篇文章主要為大家介紹了Go prometheus metrics條目自動回收與清理方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • Golang中錯誤處理機制詳解

    Golang中錯誤處理機制詳解

    平時在項目開發(fā)過程中少不了對錯誤的處理,一個好用的系統(tǒng)首先要確保其健壯性,不能經(jīng)常發(fā)生錯誤就卡死之類的情況,為了讓我們的程序更加健壯,我們就需要知道golang里的錯誤處理機制是怎么樣的,這篇文章帶大家一起學習,需要的朋友跟著小編一起來看看吧
    2024-05-05
  • Go語言同步等待組sync.WaitGroup結(jié)構(gòu)體對象方法詳解

    Go語言同步等待組sync.WaitGroup結(jié)構(gòu)體對象方法詳解

    這篇文章主要為大家介紹了Go語言同步等待組sync.WaitGroup結(jié)構(gòu)體對象方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié)

    Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié)

    這篇文章主要介紹了Go語言入門教程之Arrays、Slices、Maps、Range操作簡明總結(jié),本文直接給出操作代碼,同時對代碼加上了詳細注釋,需要的朋友可以參考下
    2014-11-11
  • Go通過不變性優(yōu)化程序詳解

    Go通過不變性優(yōu)化程序詳解

    這篇文章主要為大家介紹了Go通過不變性優(yōu)化程序?qū)嵗斀?,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 詳解Go語言RESTful JSON API創(chuàng)建

    詳解Go語言RESTful JSON API創(chuàng)建

    這篇文章主要介紹了詳解Go語言RESTful JSON API創(chuàng)建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Golang程序如何查找內(nèi)存泄漏(pprof)

    Golang程序如何查找內(nèi)存泄漏(pprof)

    該文章詳細介紹了如何使用Golang的pprof工具查找內(nèi)存泄漏,首先,在main包中引入pprof包并設(shè)置條件編譯,然后編譯程序并運行,通過執(zhí)行g(shù)otoolpprof-inuse_space命令,可以進入交互模式并使用top命令查看內(nèi)存分配最多的函數(shù),如果本機中有源代碼
    2024-12-12
  • 淺析Golang中變量與常量的聲明與使用

    淺析Golang中變量與常量的聲明與使用

    變量、常量的聲明與使用是掌握一門編程語言的基礎(chǔ),這篇文章主要為大家詳細介紹了Golang中變量與常量的聲明與使用,需要的可以參考一下
    2023-04-04
  • 手把手帶你走進Go語言之運算符解析

    手把手帶你走進Go語言之運算符解析

    這篇文章主要介紹了手Go語言之運算符解析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09

最新評論