当前位置:   article > 正文

Linux编译Go运行在Windows上(纯记录)

Linux编译Go运行在Windows上(纯记录)

要在Windows上运行Go程序,您需要使用交叉编译的方法在Linux上编译生成Windows可执行文件。以下是完成此任务的步骤:

  1. 安装Go编译器:首先确保您在Linux系统上安装了Go编程语言的编译器。如果尚未安装,请前往Go官方网站下载并安装适用于您的Linux发行版的Go二进制文件。

  2. 设置环境变量:在Linux系统上配置好Go编程环境。确保您的$GOPATH$GOBIN环境变量已正确设置。

  3. 交叉编译:使用交叉编译的功能,在Linux上编译生成Windows可执行文件。在终端中执行以下命令:

    env GOOS=windows GOARCH=amd64 go build -o output.exe your_go_file.go
    
    • 1

    如果是包含C库,考虑如下指令:

    export CGO_CFLAGS="-I/usr/local/include -I/usr/local/include/pbc -I/usr/local/gmp-6.2.1"
    export CGO_LDFLAGS="-L/usr/local/lib -L/usr/local/gmp-6.2.1 -L/usr/local/pbc-0.5.14 -lgmp -lgmp"
    env GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build -ldflags "-s -w" -o output.exe your_go_file.go
    
    • 1
    • 2
    • 3

    1.mingw32-gcc.exe 编译器将在 32 位系统上构建 32 位应用程序。
    2.i686-w64-mingw32-gcc.exe 编译器将在 64 位系统上构建 32 位应用程序。
    3.x86_64-w64-mingw32-gcc.exe 编译器将在 64 位系统上构建 64 位应用程序。
    这将使用GOOS=windowsGOARCH=amd64环境变量告诉Go编译器生成Windows可执行文件,并将其输出到output.exe文件中。确保将your_go_file.go替换为您要编译的实际Go源代码文件。

  4. **传输文件:**将生成的output.exe文件从Linux系统传输到Windows系统。您可以使用scp、ftp或任何其他您熟悉的文件传输工具。

  5. **在Windows上运行:**在Windows系统上双击或在命令提示符中运行output.exe文件,即可执行您的Go程序。

这些步骤将帮助您在Linux上编译并在Windows上运行Go程序。确保您已按照以上步骤进行操作,并检查生成的可执行文件是否能够在Windows上正常运行。
env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/include” CGO_LDFLAGS=“-L/usr/local/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe main.go
env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/gmp-6.2.1/include” CGO_LDFLAGS=“-L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe main.go
env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/include -I/usr/local/gmp-6.2.1/include” CGO_LDFLAGS=“-L/usr/local/lib -L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe main.go
env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/include -I/usr/local/gmp-6.2.1/include -I/usr/local/include/pbc” CGO_LDFLAGS=“-L/usr/local/lib -L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe main.go
env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/include/pbc -I/usr/local/gmp-6.2.1/include” CGO_LDFLAGS=“-L/usr/local/lib -L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe -lpbc -lgmp main.go
sudo env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/include/pbc /usr/local/gmp-6.2.1” CGO_LDFLAGS=“-L/usr/local/lib -L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe -lpbc -lgmp main.go
sudo env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-I/usr/local/include/pbc -I/usr/local/gmp-6.2.1/include” CGO_LDFLAGS=“-L/usr/local/lib -L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe -lpbc -lgmp main.go
sudo env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc -lpbc -lgmp CGO_CFLAGS=“-I/usr/local/include/pbc -I/usr/local/gmp-6.2.1/include” CGO_LDFLAGS=“-L/usr/local/lib -L/usr/local/gmp-6.2.1/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe main.go
env CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc CGO_CFLAGS=“-lpbc -lgmp -I/usr/local/include -I/usr/local/gmp-6.2.1” CGO_LDFLAGS=“-L/usr/local/lib” GOOS=windows GOARCH=amd64 go build -ldflags “-s -w” -o output.exe main.go

env GOOS=windows GOARCH=amd64 CGO_ENABLED=1 CC=x86_64-w64-mingw32-gcc go build -ldflags “-s -w” -o output.exe main.go

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/359800
推荐阅读
相关标签
  

闽ICP备14008679号