如何在Linux上交叉编译一个Go项目,生成一个在Windows上运行的可执行文件?
muk1a3rh1#
要从Linux构建到Windows,您需要将环境变量GOOS设置为Windows,将GOARCH设置为amd64。在Bash或ZSH上:
GOOS
Windows
GOARCH
amd64
% GOOS=windows GOARCH=amd64 go build
如果你的软件包需要CGO,那么你需要使用mingw-w 64编译器:
CGO
sudo apt-get install gcc-multilib sudo apt-get install gcc-mingw-w64 GOOS=windows GOARCH=386 \ CGO_ENABLED=1 CXX=i686-w64-mingw32-g++ CC=i686-w64-mingw32-gcc \ go build
cidc1ykv2#
在你的生产过程中,你可能想构建你的go程序来支持windows架构,但这并不总是容易的,但这里有一个指南来帮助你构建你的windows go程序
Cgo是Go语言一个元素,它允许Go包调用C代码。但是,你是否使用CGO并不像“我调用了C代码吗?”那么简单,因为虽然你可能没有在Go语言程序中调用C代码,但你正在使用的软件包可能会调用。最简单的方法就是不使用this,如果不起作用,就试试第二种方法。
如果你不需要CGO,在另一个平台上构建你的go程序是非常容易的,因为go本身就支持跨平台编译。你需要做的就是:x64处理器
#Compile your go program to the windows x64 platform env GOOS=windows GOARCH=amd64 go build package-import-path
x32个
#Compile your go program to the windows x32 platform env GOOS=windows GOARCH=386 go build package-import-path
提示:由于go本身支持交叉编译,你可以很容易地在其他平台上构建你的程序,进一步阅读here
如果您需要CGO,那么构建您的程序会稍微复杂一点,因为C不支持本机跨平台编译。但是不用担心!使用MinGW64项目仍然非常容易。
由于我们将使用mingw 64来构建我们的项目,我们需要确保mingw已经安装。如果没有,下面是安装的方法:乌班图在ubuntu上简单地运行:
sudo apt-get install gcc-mingw-w64
费多拉在软呢帽上简单地跑:
sudo dnf install mingw64-gcc
既然我们满足了要求,现在就可以构建项目了
要在windows x64体系结构上构建程序,请运行:
GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CXX=x86_64-w64-mingw32-g++ CC=x86_64-w64-mingw32-gcc go build package-import-path
要在windows x32体系结构上构建程序,请运行:
GOOS=windows GOARCH=386 CGO_ENABLED=1 CXX=i686-w64-mingw32-g++ CC=i686-w64-mingw32-gcc go build package-import-path
2条答案
按热度按时间muk1a3rh1#
要从Linux构建到Windows,您需要将环境变量
GOOS
设置为Windows
,将GOARCH
设置为amd64
。在Bash或ZSH上:
如果你的软件包需要
CGO
,那么你需要使用mingw-w 64编译器:cidc1ykv2#
简介
在你的生产过程中,你可能想构建你的go程序来支持windows架构,但这并不总是容易的,但这里有一个指南来帮助你构建你的windows go程序
CGO
Cgo是Go语言一个元素,它允许Go包调用C代码。
但是,你是否使用CGO并不像“我调用了C代码吗?”那么简单,因为虽然你可能没有在Go语言程序中调用C代码,但你正在使用的软件包可能会调用。
最简单的方法就是不使用this,如果不起作用,就试试第二种方法。
如果您不需要CGO
如果你不需要CGO,在另一个平台上构建你的go程序是非常容易的,因为go本身就支持跨平台编译。你需要做的就是:
x64处理器
x32个
提示:由于go本身支持交叉编译,你可以很容易地在其他平台上构建你的程序,进一步阅读here
如果您需要CGO
如果您需要CGO,那么构建您的程序会稍微复杂一点,因为C不支持本机跨平台编译。但是不用担心!使用MinGW64项目仍然非常容易。
要求
由于我们将使用mingw 64来构建我们的项目,我们需要确保mingw已经安装。如果没有,下面是安装的方法:
乌班图
在ubuntu上简单地运行:
费多拉
在软呢帽上简单地跑:
构建
既然我们满足了要求,现在就可以构建项目了
适用于Windows x64架构
要在windows x64体系结构上构建程序,请运行:
适用于Windows x32架构
要在windows x32体系结构上构建程序,请运行: