Golang交叉編譯(跨平臺編譯)的使用
一、何為交叉編譯
簡單地說,就是在一個平臺上生成另一個平臺上的可執(zhí)行代碼。同一個體系結(jié)構(gòu)可以運(yùn)行不同的操作系統(tǒng);同樣,同一個操作系統(tǒng)也可以在不同的體系結(jié)構(gòu)上運(yùn)行。
二、交叉編譯前的準(zhǔn)備
本文只介紹Windows平臺下的Golang交叉編譯
安裝TDM-GCC
下載地址:http://tdm-gcc.tdragon.net/download
安裝完成后添加TDM-GCC中bin文件夾進(jìn)環(huán)境變量。
三、簡述交叉編譯

其實(shí)保存上面一幅圖即可,需記住三個參數(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理解為局部變量,不會保存。Golang默認(rèn)每次build的都是當(dāng)前系統(tǒng)和架構(gòu)。
四、實(shí)練
1. 默認(rèn)編譯

當(dāng)前是使用默認(rèn)配置編譯了一個Windows平臺下的exe可執(zhí)行文件,同樣我們設(shè)置GOOS和GOARCH后再編譯看看。
2.交叉編譯一個Arm+Linux

在Windows PowerShell中SET 命令似乎無效,有時間再詳查什么原因,所以這一步用了CMD。
設(shè)置完后同樣再運(yùn)行g(shù)o bulid即可,就可以得到一個無后綴的linux可執(zhí)行文件。

小總結(jié)
記住3句代碼,及其支持的系統(tǒng)。這個在第三節(jié)已經(jīng)給出。
SET GOOS=xxxSET GOARCH=xxxgo env
到此這篇關(guān)于Golang交叉編譯(跨平臺編譯)的使用的文章就介紹到這了,更多相關(guān)Golang 交叉編譯內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang中http請求的context傳遞到異步任務(wù)的坑及解決
這篇文章主要介紹了golang中http請求的context傳遞到異步任務(wù)的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Golang實(shí)現(xiàn)常見排序算法的示例代碼
現(xiàn)在的面試真的是越來越卷了,算法已經(jīng)成為了面試過程中必不可少的一個環(huán)節(jié),你如果想進(jìn)稍微好一點(diǎn)的公司,算法是必不可少的一個環(huán)節(jié)。本文為大家準(zhǔn)備了Golang實(shí)現(xiàn)常見排序算法的示例代碼,需要的可以參考一下2022-05-05
Golang使用DuckDB查詢Parquet文件數(shù)據(jù)的操作代碼
本文介紹DuckDB查詢Parquet文件的典型應(yīng)用場景,掌握DuckDB會讓你的產(chǎn)品分析能力更強(qiáng),相反系統(tǒng)運(yùn)營成本相對較低,為了示例完整,我也提供了如何使用Python導(dǎo)出MongoDB數(shù)據(jù),需要的朋友可以參考下2025-01-01

