从 Windows 10 到树莓派的交叉编译 CGO_ENABLED = 1

我希望从我的Windows机器编译一个树莓派(更快)。如果我使用以下命令,一切正常:env GOOS=linux GOARCH=arm GOARM=5 go build src/*.go


但是,我正在使用显然需要CGO_ENABLED = 1go-sqlite3


Binary was compiled with 'CGO_ENABLED=0', go-sqlite3 requires cgo to work. This is a stub


当我将编译命令更改为“我在窗口上收到错误”env GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 go build src/*.go


$ env GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 go build src/*.go

# runtime/cgo

cgo: exec C:\Program: exec: "C:\\Program": file does not exist

这看起来像是一个简单的修复,但我对交叉编译不是很满意。我在网上找不到太多。


编辑:


我移动了我的项目,现在我得到以下错误:


$ env GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 go build src/*

# runtime/cgo

gcc: error: unrecognized command line option '-marm'; did you mean '-mabm'?*

我在网上环顾四周,显然需要指定CC:


$ env GOOS=linux GOARCH=arm GOARM=5 CGO_ENABLED=1 CC=arm-linux-gnueabi-gcc go build src/*

# runtime/cgo

cgo: exec arm-linux-gnueabi-gcc: exec: "arm-linux-gnueabi-gcc": executable file not found in %PATH%

因此,我正在向前迈进以解决问题,但我还没有到达那里。


我将尝试找到如何在Windows上安装gcc linux并将其添加到.但是,如果这不是正确的方法。我愿意接受一些帮助PATH


天涯尽头无女友
浏览 648回答 1
1回答

Cats萌萌

好吧,所以通过编辑,我展示了工作。为了解决最初的问题,我将项目移到了GOPATH中。cgo: exec C:\Program: exec: "C:\\Program": file does not exist为了修复第一次编辑,我从 https://gnutoolchains.com/raspberry/ 安装了工具链,并确保在用户和系统变量中都添加了工具链。cgo: exec arm-linux-gnueabi-gcc: exec: "arm-linux-gnueabi-gcc": executable file not found in %PATH%C:\SysGCC\raspberry\bin为了修复第二次编辑,我 https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download 安装并确保安装了以下数据包arm-linux-gnueabihf-gcc: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not foundmingw-developer-toolkit明珠32-基地mingw32-gcc-g++msys-base我不确定它们都是必要的。我还确保在用户和系统变量中都有。C:\MinGW\bin然后,我需要重新启动我使用的所有终端,现在命令可以正确编译
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go