Golang交叉編譯(跨平臺(tái)編譯)的使用
一、何為交叉編譯
簡單地說,就是在一個(gè)平臺(tái)上生成另一個(gè)平臺(tái)上的可執(zhí)行代碼。同一個(gè)體系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng);同樣,同一個(gè)操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。
二、交叉編譯前的準(zhǔn)備
本文只介紹Windows平臺(tái)下的Golang交叉編譯
安裝TDM-GCC
下載地址:http://tdm-gcc.tdragon.net/download
安裝完成后添加TDM-GCC中bin文件夾進(jìn)環(huán)境變量。
三、簡述交叉編譯
其實(shí)保存上面一幅圖即可,需記住三個(gè)參數(shù),GOOS(Go的目標(biāo)系統(tǒng)),GOARCH(GO的目標(biāo)架構(gòu))。
設(shè)置完成后通過go env查看當(dāng)前配置。
注意:在不同的命令提示符(CMD)中或關(guān)閉重新打開命令提示符,所設(shè)置的GOOS和GOARCH是不互通的。也就是可以把GOOS和GOARCH理解為局部變量,不會(huì)保存。Golang默認(rèn)每次build的都是當(dāng)前系統(tǒng)和架構(gòu)。
四、實(shí)練
1. 默認(rèn)編譯
當(dāng)前是使用默認(rèn)配置編譯了一個(gè)Windows平臺(tái)下的exe可執(zhí)行文件,同樣我們設(shè)置GOOS和GOARCH后再編譯看看。
2.交叉編譯一個(gè)Arm+Linux
在Windows PowerShell中SET 命令似乎無效,有時(shí)間再詳查什么原因,所以這一步用了CMD。
設(shè)置完后同樣再運(yùn)行g(shù)o bulid即可,就可以得到一個(gè)無后綴的linux可執(zhí)行文件。
小總結(jié)
記住3句代碼,及其支持的系統(tǒng)。這個(gè)在第三節(jié)已經(jīng)給出。
SET GOOS=xxxSET GOARCH=xxxgo env
到此這篇關(guān)于Golang交叉編譯(跨平臺(tái)編譯)的使用的文章就介紹到這了,更多相關(guān)Golang 交叉編譯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang接口實(shí)現(xiàn)調(diào)用修改(值接收者指針接收者)場景詳解
這篇文章主要為大家介紹了golang接口實(shí)現(xiàn)調(diào)用修改值接收者指針接收者示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Go數(shù)據(jù)結(jié)構(gòu)之HeapMap實(shí)現(xiàn)指定Key刪除堆
這篇文章主要給大家介紹了Go語言數(shù)據(jù)結(jié)構(gòu)之HeapMap實(shí)現(xiàn)指定Key刪除堆,通過使用Go語言中的container/heap包,我們可以輕松地實(shí)現(xiàn)一個(gè)優(yōu)先級(jí)隊(duì)列,文中有詳細(xì)的代碼示例講解,需要的朋友可以參考下2023-07-0715個(gè)Golang中時(shí)間處理的實(shí)用函數(shù)
在Go編程中,處理日期和時(shí)間是一項(xiàng)常見任務(wù),涉及到精確性和靈活性,本文將介紹一系列實(shí)用函數(shù),它們充當(dāng)time包的包裝器,需要的可以參考下2024-01-01golang?xorm?自定義日志記錄器之使用zap實(shí)現(xiàn)日志輸出、切割日志(最新)
這篇文章主要介紹了golang?xorm?自定義日志記錄器,使用zap實(shí)現(xiàn)日志輸出、切割日志,包括連接postgresql數(shù)據(jù)庫的操作方法及?zap日志工具?,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10