我在用Go做第一步。
我的工作站在Windows上,我正在使用JetBrains IDE进行开发。通常,我会将网络磁盘(通过SSH)安装到Linux机器上。这个环境非常适合使用PHP、Javascript (用于Node)、Python等解释语言进行编码和调试。但是对于Go这样的编译语言来说,这是绝对丑陋的。
为了编写Go代码,我使用了用于IntelliJ IDEA的Go插件。是否可以为这个插件定义一个远程Go编译器(将在远程Linux机器上运行它)?
发布于 2014-03-24 04:33:15
由于Go是一种编译语言,这种开发设置并不像脚本语言那样容易。要在Windows下编译Linux二进制文件,您必须设置一个交叉编译环境。您可以从golang.org下载的二进制包只支持它们在其上运行的平台(即,Windows编译器只生成Windows二进制文件),因此您必须从源代码编译。这篇博客文章很好地介绍了交叉编译--确保阅读“注意事项”部分,以防这些内容适用于您的情况。如本文所述,构建Go之后,您将拥有名为“building as 64”(“go architecture”)的"go“工具的”克隆“,您可以使用该工具为其他平台编译二进制文件。
编辑: Dave已经在Go 1.5中编写了另一篇博文,该版本的交叉编译功能有了很大的改进(定于8月份发布)。
发布于 2015-03-03 10:10:07
您可以考虑即将推出的Go 1.5 (Q3 2015),这将使所有交叉编译过程更加简单。
“交叉编译环境”更容易获得,因为它完全基于Go。
切尼在"交叉编译在Go 1.5中得到了更好的结果“中详细介绍了新闻
)
要获得成功的交叉编译,您需要
随着将Go编译器进入Go翻译成1.5版本的计划,第一个问题现在已经解决了。
package main
import "fmt"
import "runtime"
func main() {
fmt.Printf("Hello %s/%s\n", runtime.GOOS, runtime.GOARCH)
}为达尔文/386建造
% env GOOS=darwin GOARCH=386 go build hello.go
# scp to darwin host
$ ./hello
Hello darwin/386或为linux/arm构建
% env GOOS=linux GOARCH=arm GOARM=7 go build hello.go
# scp to linux host
$ ./hello
Hello linux/armhttps://stackoverflow.com/questions/22597450
复制相似问题