欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

測(cè)試代碼文件名為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)
			// 打開(kāi)文件
			file, _ := os.OpenFile(fileName, os.O_WRONLY|os.O_APPEND, 0666)
			// 當(dāng)執(zhí)行完,關(guān)閉文件
			defer file.Close()
			// 寫(xiě)內(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)過(guò)調(diào)試,上述代碼可正常執(zhí)行。測(cè)試通過(guò)。

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

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

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

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

編譯成Linux環(huán)境可執(zhí)行文件,此處除編譯環(huán)境參數(shù)外,其他步驟與上面類(lèi)似,編譯參數(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上開(kāi)發(fā)代碼,編譯輸出windows與linux兩種環(huán)境的可執(zhí)行文件。

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

相關(guān)文章

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

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

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

    Go prometheus metrics條目自動(dòng)回收與清理方法

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

    Golang中錯(cuò)誤處理機(jī)制詳解

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

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

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

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

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

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

    這篇文章主要為大家介紹了Go通過(guò)不變性優(yōu)化程序?qū)嵗斀猓行枰呐笥芽梢越梃b參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 詳解Go語(yǔ)言RESTful JSON API創(chuàng)建

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

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

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

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

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

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

    手把手帶你走進(jìn)Go語(yǔ)言之運(yùn)算符解析

    這篇文章主要介紹了手Go語(yǔ)言之運(yùn)算符解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09

最新評(píng)論