国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Golang】Windows與Linux交叉編譯保姆級(jí)教程

這篇具有很好參考價(jià)值的文章主要介紹了【Golang】Windows與Linux交叉編譯保姆級(jí)教程。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【Golang】Windows與Linux交叉編譯

大家好 我是寸鐵??
總結(jié)了一篇【golang】Windows與Linux交叉編譯的文章?
喜歡的小伙伴可以點(diǎn)點(diǎn)關(guān)注 ??

問(wèn)題背景

今天寸鐵想將Windows中的程序部到Linux下跑,我們知道在從WindowsLinux下要進(jìn)行交叉編譯,通常是在Windows中打包成一個(gè)文件在再Linux下編譯執(zhí)行,我們管這個(gè)過(guò)程叫做操作系統(tǒng)的交叉編譯。

那交叉編譯具體怎么做呢?其實(shí)很簡(jiǎn)單,不過(guò)網(wǎng)上的博客的一些命令筆者實(shí)操過(guò),發(fā)現(xiàn)不對(duì)!
小伙伴們要想實(shí)現(xiàn)交叉編譯,看筆者的文章即可,減少大量踩坑的時(shí)間。


往期好文

上一篇優(yōu)質(zhì)長(zhǎng)文,也是與打包程序相關(guān)的,感興趣的朋友可以了解一下!

【Golang】Golang使用embed加載、打包靜態(tài)資源文件

感謝社區(qū)的收錄 ?? ?? ??
go 交叉編譯 linux,go,Linux,操作系統(tǒng),golang,windows,linux,后端,實(shí)戰(zhàn),交叉編譯,打包


工具

在正式進(jìn)入交叉編譯之前,我們先來(lái)介紹一下打包成可執(zhí)行文件的工具go build
go build常用于打包成一個(gè)可執(zhí)行文件,不同的操作系統(tǒng)可執(zhí)行文件的格式不同。
Windows操作系統(tǒng),該文件為exe文件。
Linux操作系統(tǒng),該文件為sh文件。

使用命令如下:

go build xx.go

注意:直接在windows環(huán)境中使用上述命令,得到的是exe文件,不能在Linux上運(yùn)行,在Linux上運(yùn)行的是sh腳本文件?。?!


交叉編譯

在簡(jiǎn)單了解了工具的使用命令后,如果我是在Windows環(huán)境,怎么打包成一個(gè)sh文件,使得他可以在linux下運(yùn)行呢?

Windows配置

使用如下配置命令:

go env -w GOOS=linux

go 交叉編譯 linux,go,Linux,操作系統(tǒng),golang,windows,linux,后端,實(shí)戰(zhàn),交叉編譯,打包


再使用go build命令,打包你編寫(xiě)的go文件。

go build redisTest.go

之后就會(huì)在文件夾的位置看到這個(gè)圖標(biāo),代表打包成功!
go 交叉編譯 linux,go,Linux,操作系統(tǒng),golang,windows,linux,后端,實(shí)戰(zhàn),交叉編譯,打包

注意:這里如果打包后為redisTest.exe說(shuō)明打包成Linux的可執(zhí)行文件失敗,要檢查你的配置命令是不是正確,建議直接就是復(fù)制過(guò)去,再修改一下文件名即可,不會(huì)出錯(cuò)。


打包成linux文件后,記得要切換為Windows環(huán)境,確保其他文件正常編譯,使用如下命令:

go env -w GOOS=windows

go 交叉編譯 linux,go,Linux,操作系統(tǒng),golang,windows,linux,后端,實(shí)戰(zhàn),交叉編譯,打包


Linux使用

Linux操作系統(tǒng)中使用上面命令打包好的sh文件
先把文件上傳到你的文件目錄中,再使用命令如下:

./文件名

如我這里是運(yùn)行searchConsul就是直接./searchConsul即可。

go 交叉編譯 linux,go,Linux,操作系統(tǒng),golang,windows,linux,后端,實(shí)戰(zhàn),交叉編譯,打包

這樣就能愉快的在Linuxgo編寫(xiě)的程序啦!


看到這里的小伙伴,恭喜你又掌握了一個(gè)技能??
希望大家能取得勝利,堅(jiān)持就是勝利??
我是寸鐵!我們下期再見(jiàn)??


往期好文??

保姆級(jí)教程

【保姆級(jí)教程】Windows11下go-zero的etcd安裝與初步使用

【保姆級(jí)教程】Windows11安裝go-zero代碼生成工具goctl、protoc、go-zero

【Go-Zero】手把手帶你在goland中創(chuàng)建api文件并設(shè)置高亮


報(bào)錯(cuò)解決

【Go-Zero】Error: user.api 27:9 syntax error: expected ‘:‘ | ‘IDENT‘ | ‘INT‘, got ‘(‘ 報(bào)錯(cuò)解決方案及api路由注意事項(xiàng)

【Go-Zero】Error: only one service expected goctl一鍵轉(zhuǎn)換生成rpc服務(wù)錯(cuò)誤解決方案

【Go-Zero】【error】 failed to initialize database, got error Error 1045 (28000):報(bào)錯(cuò)解決方案

【Go-Zero】Error 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)報(bào)錯(cuò)解決方案

【Go-Zero】type mismatch for field “Auth.AccessSecret“, expect “string“, actual “number“報(bào)錯(cuò)解決方案

【Go-Zero】Error: user.api 30:2 syntax error: expected ‘)‘ | ‘KEY‘, got ‘IDENT‘報(bào)錯(cuò)解決方案

【Go-Zero】Windows啟動(dòng)rpc服務(wù)報(bào)錯(cuò)panic:context deadline exceeded解決方案


Go面試向

【Go面試向】defer與time.sleep初探

【Go面試向】defer與return的執(zhí)行順序初探

【Go面試向】Go程序的執(zhí)行順序

【Go面試向】rune和byte類型的認(rèn)識(shí)與使用

【Go面試向】實(shí)現(xiàn)map穩(wěn)定的有序遍歷的方式文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-845374.html

到了這里,關(guān)于【Golang】Windows與Linux交叉編譯保姆級(jí)教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • golang 記錄交叉編譯sqlite的報(bào)錯(cuò)信息 go build -ldflags

    go build -ldflags ‘-s -w --extldflags “-static -fpic”’ -o go-web main.go command-line-arguments /tmp/go-link-1199555067/000015.o: In function ‘unixDlOpen’: /root/go/pkg/mod/github.com/mattn/go-sqlite3@v1.14.6/sqlite3-binding.c:40175: warning: Using ‘dlopen’ in statically linked applications requires at runtime the shared libraries from the gl

    2024年02月04日
    瀏覽(21)
  • Linux(Ubantu)交叉編譯生成windows(32位,64位)可執(zhí)行程序和庫(kù)

    Linux(Ubantu)交叉編譯生成windows(32位,64位)可執(zhí)行程序和庫(kù)

    機(jī)緣巧合下收到了這個(gè)小任務(wù). 先是找了下資料發(fā)現(xiàn)過(guò)去的都是關(guān)于mingw32. 教程的做法: 增加個(gè)源 (trusty 是linux發(fā)行的版本標(biāo)識(shí),比如22.04是 jammy 更新源 下載mingw32. 結(jié)果發(fā)現(xiàn)在源里根本找不到 mingw32 報(bào)錯(cuò) Unable to locate package mingw32 最后發(fā)現(xiàn) ubantu高于15.04的版本 mingw32不可用 ,這也

    2024年01月21日
    瀏覽(48)
  • [保姆教程] Windows平臺(tái)下OpenCV編譯安裝和它的Go語(yǔ)言實(shí)現(xiàn)gocv的使用(親測(cè)通過(guò))

    [保姆教程] Windows平臺(tái)下OpenCV編譯安裝和它的Go語(yǔ)言實(shí)現(xiàn)gocv的使用(親測(cè)通過(guò))

    一、下載安裝 MinGW CMake 預(yù)備步驟 首先打開(kāi)cmd: 下載安裝MinGW64 訪問(wèn): https://sourceforge.net/projects/mingw-w64/files/ 下載: MinGW-W64 GCC-8.1.0 下面的 x86_64-posix-seh 版本 下載后,將它解壓縮到 c:mingw64 里 下載安裝 CMake 訪問(wèn):https://cmake.org/download/ 下載:Windows x64 ZIP 解壓到: c:cmake Window

    2024年02月16日
    瀏覽(31)
  • go語(yǔ)言終端交叉編譯的事項(xiàng)windows編譯其它平臺(tái)軟件包

    go語(yǔ)言終端交叉編譯的事項(xiàng)windows編譯其它平臺(tái)軟件包

    windows編譯窗口目前分為 cmd窗口 ,powershell窗口,這兩個(gè)里面運(yùn)行的命令不一樣。 1.cmd窗口編譯; 在windows10之前的系統(tǒng)版本上使用cmd命令行可以使用命令 CMD命令行中 在CMD命令行中編譯(示例編譯64位linux程序),【打開(kāi)一個(gè)cmd窗口一行行執(zhí)行下面的命令;】 // 設(shè)置Linux編譯環(huán)

    2024年02月16日
    瀏覽(24)
  • QT5交叉編譯保姆級(jí)教程(arm64、mips64)

    QT5交叉編譯保姆級(jí)教程(arm64、mips64)

    什么是交叉編譯? 簡(jiǎn)單說(shuō),就是在當(dāng)前系統(tǒng)平臺(tái)上,開(kāi)發(fā)編譯運(yùn)行于其它平臺(tái)的程序。 比如本文硬件環(huán)境是x86平臺(tái),但是編譯出來(lái)的程序是在arm64架構(gòu)、mips64等架構(gòu)上運(yùn)行 本文使用的操作系統(tǒng):統(tǒng)信UOS家庭版22.0 一、安裝QT5: 二、安裝編譯所需的組件 #安裝python環(huán)境(QT中的

    2024年02月05日
    瀏覽(30)
  • 【Go語(yǔ)言】Golang保姆級(jí)入門(mén)教程 Go初學(xué)者chapter3

    【Go語(yǔ)言】Golang保姆級(jí)入門(mén)教程 Go初學(xué)者chapter3

    下劃線“_”本身在Go中一個(gè)特殊的標(biāo)識(shí)符,成為空標(biāo)識(shí)符??梢源砣魏纹渌臉?biāo)識(shí)符,但是他對(duì)應(yīng)的值就會(huì)被忽略 僅僅被作為站維度使用, 不能作為標(biāo)識(shí)符使用 因?yàn)镚o語(yǔ)言中沒(méi)有private public 所以標(biāo)記變量首字母大寫(xiě)代表其他包可以使用 小寫(xiě)就是不可使用的 注意:Go語(yǔ)言中

    2024年02月13日
    瀏覽(92)
  • 【Go語(yǔ)言】Golang保姆級(jí)入門(mén)教程 Go初學(xué)者chapter2

    【Go語(yǔ)言】Golang保姆級(jí)入門(mén)教程 Go初學(xué)者chapter2

    setting的首選項(xiàng) 一個(gè)程序就是一個(gè)世界 變量是程序的基本組成單位 變量的使用步驟 [外鏈圖片轉(zhuǎn)存失敗,源站可能有防盜鏈機(jī)制,建議將圖片保存下來(lái)直接上傳(img-zuxG8imp-1691479164956)(https://cdn.staticaly.com/gh/hudiework/img@main/image-20230726152905139.png)] 變量表示內(nèi)存中的一個(gè)存儲(chǔ)區(qū) 注意:

    2024年02月14日
    瀏覽(577)
  • 【Go語(yǔ)言】Golang保姆級(jí)入門(mén)教程 Go初學(xué)者介紹chapter1

    【Go語(yǔ)言】Golang保姆級(jí)入門(mén)教程 Go初學(xué)者介紹chapter1

    Golang的學(xué)習(xí)方向 區(qū)塊鏈研發(fā)工程師: 去中心化 虛擬貨幣 金融 Go服務(wù)器端、游戲軟件工程師 : C C++ 處理日志 數(shù)據(jù)打包 文件系統(tǒng) 數(shù)據(jù)處理 很厲害 處理大并發(fā) Golang分布式、云計(jì)算軟件工程師:盛大云 cdn 京東 消息推送 分布式文件系統(tǒng) 2、Golang的應(yīng)用領(lǐng)域 區(qū)塊鏈應(yīng)用:區(qū)塊鏈

    2024年02月15日
    瀏覽(128)
  • 【PostgreSQL在Windows、Linux和Docker上的保姆級(jí)安裝教程】

    【PostgreSQL在Windows、Linux和Docker上的保姆級(jí)安裝教程】

    1.1、下載 官網(wǎng):https://www.postgresql.org/ 1.2、安裝 1.2.1、開(kāi)始安裝 1.2.2、選擇安裝位置 1.2.3、選擇組件(全選即可) 1.2.4、數(shù)據(jù)存放路徑 數(shù)據(jù)庫(kù)相關(guān)數(shù)據(jù)默認(rèn)存放在這里 1.2.5、設(shè)置密碼,賬號(hào)默認(rèn)為postgres 1.2.6、數(shù)據(jù)庫(kù)服務(wù)監(jiān)聽(tīng)端口號(hào) 默認(rèn)端口號(hào)即可 1.2.7、系統(tǒng)語(yǔ)言/地區(qū) 建議

    2024年02月02日
    瀏覽(27)
  • 重新理解Linux交叉編譯及編譯流程

    重新理解Linux交叉編譯及編譯流程

    參考書(shū)籍 1、編譯原理 2、嵌入式Linux應(yīng)用開(kāi)發(fā) 當(dāng)我們開(kāi)發(fā)目標(biāo)是一個(gè)嵌入式設(shè)備時(shí),便需要在PC機(jī)上編譯出能在該嵌入式設(shè)備上運(yùn)行的可執(zhí)行文件,這里編譯主機(jī)與目標(biāo)運(yùn)行主機(jī)不是同一個(gè)設(shè)備,那么該過(guò)程就稱為交叉編譯;而編譯是指一個(gè)源代碼文件(這里指的是編譯性程

    2023年04月08日
    瀏覽(16)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包