Golang交叉編譯(跨平臺(tái)編譯)的使用
一、何為交叉編譯
簡(jiǎn)單地說,就是在一個(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)境變量。
三、簡(jiǎ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í)行文件,同樣我們?cè)O(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
golang中http請(qǐng)求的context傳遞到異步任務(wù)的坑及解決
這篇文章主要介紹了golang中http請(qǐng)求的context傳遞到異步任務(wù)的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03
Golang實(shí)現(xiàn)常見排序算法的示例代碼
現(xiàn)在的面試真的是越來越卷了,算法已經(jīng)成為了面試過程中必不可少的一個(gè)環(huán)節(jié),你如果想進(jìn)稍微好一點(diǎn)的公司,算法是必不可少的一個(gè)環(huán)節(jié)。本文為大家準(zhǔn)備了Golang實(shí)現(xiàn)常見排序算法的示例代碼,需要的可以參考一下2022-05-05
Golang使用DuckDB查詢Parquet文件數(shù)據(jù)的操作代碼
本文介紹DuckDB查詢Parquet文件的典型應(yīng)用場(chǎng)景,掌握DuckDB會(huì)讓你的產(chǎn)品分析能力更強(qiáng),相反系統(tǒng)運(yùn)營(yíng)成本相對(duì)較低,為了示例完整,我也提供了如何使用Python導(dǎo)出MongoDB數(shù)據(jù),需要的朋友可以參考下2025-01-01
k8s在go語言中的使用及client?初始化簡(jiǎn)介
這篇文章主要為大家介紹了k8s在go語言中的使用及client?初始化簡(jiǎn)介,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04

