Golang CGo 交叉編譯

2021-10-06 20:43:20 字數 1334 閱讀 6389

交叉編譯的檔案放到arm架構linux系統的平台上執行, 發現無法進行

原因: 有些go 包 是包裝了c/c++原始碼的, 需要使用不同gcc/g++編譯器, 否則會報如上錯誤

解決方法: 

windows 安裝 mingw32、mingw64 - 此部落格可借鑑 

linux 平台自身帶gcc 和 g++ 只要系統環境訪問到即可

使用交叉編譯的話 自行編譯

1中仍然無法解決對應問題,那實際問題就是, 需要配置對應編譯平台的gcc/g++了, 注意32bit、64bit

解決方案: 本例編譯為 在 windows下交叉編譯arm-linux 程式 

goos=linux; // 編譯平台的系統

goarch=arm; // 編譯平台架構

cgo_enabled=1; // 是否使能cgo

cc=d:\programpath\gcc-6.3.1_arm-linux-gnueabihf\bin\arm-linux-gnueabihf-gcc; // 配置gcc 

cxx=d:\programpath\gcc-6.3.1_arm-linux-gnueabihf\bin\arm-linux-gnueabihf-g++; // 配置g++

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...

交叉編譯 Go 交叉編譯 跨平台編譯

golang 支援交叉編譯,在乙個平台上生成另乙個平台的可執行程式 cgo enabled 0 goos linux goarch amd64 go build main.go cgo enabled 0 goos windows goarch amd64 go build main.go cgo ...