我在Windows 10上安装了GO 1.7.我创建了测试程序,它在Windows中运行良好.下一步是尝试使用Ubuntu在我的docker虚拟机上运行它.
set GOARCH=amd64
set GOOS=linux
go tool dist install -v pkg/runtime
go install -v -a std
Run Code Online (Sandbox Code Playgroud)
我在cmd中运行第1行和第2行,没有问题.在第3行,我有一个错误
go tool dist: open C:\Go\src\pkg\runtime: The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)
我手动检查这个文件夹,只有Windows的运行时
问题是我在哪里以及如何下载它?或者也许我正在做的是完全错误的方式......
更新09/02/2017
我按照建议跑了
set GOARCH=amd64
set GOOS=linux
go build -o "myapp"
Run Code Online (Sandbox Code Playgroud)
将此文件复制到共享文件夹后,将表单复制到另一个非共享文件夹(以避免此处描述的问题)并执行
root@7dd1655ae5db:/__notshared# ./myapp
bash: ./myapp: cannot execute binary file: Exec format error
Run Code Online (Sandbox Code Playgroud)
我下载文件包后检查了我的文件
root@7dd1655ae5db:/__notshared# file myapp
myapp: PE32+ executable (console) x86-64 (stripped to external PDB), for MS Windows
Run Code Online (Sandbox Code Playgroud)
似乎在构建期间没有创建linux可执行文件.
我想为Linux机器编译Go程序。我一直使用这里描述的方式:
这工作得很好,直到从Windows 10,现在是最后的大更新,我不能够设置GOOS与
set GOOS=linux
Run Code Online (Sandbox Code Playgroud)
我也尝试以管理员身份启动PowerShell,但即使这样也无法正常工作。有什么工具可以做到这一点?还是有另一种方法可以在Windows 10上交叉编译Go程序?
我想在 Windows 10 for Linux (Ubuntu) 中编译我的 Go 代码。
我使用命令:
SET GOOS=linux
SET GOARCH=amd64
go build .\main.go
Run Code Online (Sandbox Code Playgroud)
但编译器会创建一个 .exe 文件。
如何在Linux下交叉编译这段代码?