如何从Windows交叉编译到Linux?

 非船_725 发布于 2023-02-07 16:24

我已经在Windows机器上安装了Go 1.2,编写了一个虚拟程序并分别设置了环境变量GOARCHGOOS"AMD64"和"linux".

当我发出" go build"命令时,我收到一个错误:

go build runtime: linux/amd64 must be bootstrapped using make.bat

这是什么意思?

3 个回答
  • 它告诉你它需要所有工具才能使用它们.

    如果您的Windows GOARCH是amd64,那么您可以通过运行这个小批量程序来"构建"所有必需的工具:

    set GOARCH=amd64
    set GOOS=linux
    go tool dist install -v pkg/runtime
    go install -v -a std
    

    如果成功,那么你应该能够做你所描述的(只使用amd64,而不是AMD64 - 它区分大小写).

    如果您的Windows GOARCH是386,那么您需要先构建386工具.您需要为此下载mingw gcc.做什么user2714852说.

    这里https://golang.org/wiki/WindowsCrossCompiling是linux的类似说明,也许你觉得它们很有帮助.

    亚历克斯

    2023-02-07 16:25 回答
  • 要设置PowerShell环境变量,请使用(无需管理员模式):然后
    $env:GOOS = "linux"
    构建您的程序go build

    更改的环境变量仅在当前PowerShell窗口中显示.重新打开窗口时,所有内容都将被重置.

    2023-02-07 16:25 回答
  • 我从windows构建Linux时遇到了一些重大问题.最后,它非常简单.我会评论亚历克斯的帖子,但我不能因为我是一个stackoverflow newb.

    正如亚历克斯所说,设置环境变量.这必须以管理员身份完成(例如,右键单击"命令提示符"或"Powershell"快捷方式,然后单击"以管理员身份运行")

    set GOARCH=amd64
    set GOOS=linux
    

    如果您不以管理员身份执行此操作,则变量将不会生效,您只需为此处的操作系统和体系结构构建它.

    我发现通过运行go env来检查你的环境变量总是很好的,它给你了当前go环境变量的列表

    go env
    set GOARCH=amd64
    set GOBIN=
    set GOEXE=
    set GOHOSTARCH=amd64
    set GOHOSTOS=windows
    set GOOS=linux
    set GOPATH=T:\Projects\gopath
    set GORACE=
    set GOROOT=C:\Go
    set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
    set GCCGO=gccgo
    set CC=gcc
    set GOGCCFLAGS=-fPIC -m64 -fmessage-length=0
    set CXX=g++
    set CGO_ENABLED=0
    set PKG_CONFIG=pkg-config
    set CGO_CFLAGS=-g -O2
    set CGO_CPPFLAGS=
    set CGO_CXXFLAGS=-g -O2
    set CGO_FFLAGS=-g -O2
    set CGO_LDFLAGS=-g -O2
    

    确保GOOS&GOARCH设置为您之前指定的值.

    如果这一切都很好,您应该能够导航到包含您的go代码的目录,并从命令行运行:

    go build
    

    这将构建在环境变量中设置的系统和架构的包.
    一旦我终于解决了这个问题,我遇到了一些其他问题,但这是另一个与此问题无关的问题.

    2023-02-07 16:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有