日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

交叉编译_Golang交叉编译

發布時間:2025/4/5 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 交叉编译_Golang交叉编译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Golang支持交叉編譯,可以在一個操作系統生成另一個操作系統的可執行二進制文件。

Mac下編譯 Linux 和 Windows 64位可執行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Linux下編譯 Mac 和 Windows 64位可執行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.goCGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go

Windows下編譯 Mac 和 Linux 64位可執行程序

SET CGO_ENABLED=0SET GOOS=darwinSET GOARCH=amd64go build main.goSET CGO_ENABLED=0SET GOOS=linuxSET GOARCH=amd64go build main.go

GOOS:目標平臺的操作系統(darwin、freebsd、linux、windows)
GOARCH:目標平臺的體系架構(386、amd64、arm)
交叉編譯不支持 CGO 所以要禁用它

上面的命令編譯 64 位可執行程序,你當然應該也會使用 386 編譯 32 位可執行程序。很多博客都提到要先增加對其它平臺的支持,但是我跳過那一步,上面所列的命令也都能成功,且得到我想要的結果,可見那一步應該是非必須的,或是我所使用的 Go 版本已默認支持所有平臺。編譯好的二進制文件不在依賴GOROOT、GOPATH環境變量,可以隨意的跑起來。

在windows平臺編譯好的linux平臺的可執行文件,在linux系統中無法執行并且報錯如下?

./src/kill/backend/fronted/productMain:command?not?found

根據報錯可知曉,二進制文件不允許被執行,導致不可被執行的原因有

  • 權限不夠

  • 二進制文件破損

給執行文件賦予權限

chmod 777 file_path

幸運的是賦予完權限之后,程序可以正常啟動咯,但是遠程無法訪問,本地curl可以訪問,查看源碼后發現監聽了特殊的IP,導致無法通過域名訪問,正確的綁定格式是:

localhost:80?=> 0.0.0.0:80

Golang之路不會一帆風順,為了后期的開發更高效,做好學習筆記是非常重要的,畢竟好記性不如爛筆頭耶!

總結

以上是生活随笔為你收集整理的交叉编译_Golang交叉编译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。