goland交叉编译设置怎么没用?

foreveryoung · 2017-12-14 04:06:38 · 5484 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2017-12-14 04:06:38 的主题,其中的信息可能已经有所发展或是发生改变。

在goland的setting中设置如下: image.png ok确认后,在terminal中输入 “go env”,显示环境变量还是之前的设置: image.png 编译后,生成的还是windows 的exe文件,这是怎么回事呢?


有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5484 次点击  
加入收藏 微博
10 回复  |  直到 2019-05-28 20:50:19
zhengzaishuru
zhengzaishuru · #1 · 7年之前

关键点有两个, GOARCH=amd64,这个你设置对了, 还有另外一个GOOS=linux, 你现在设置的GOOS=windows, 把你的GOOS改成linux, 再执行编译。

zhengzaishuru
zhengzaishuru · #2 · 7年之前

如果没有使用CGO的话可以把CGO_ENABLED=0,即把CGO_ENABLED关闭掉。

foreveryoung
foreveryoung · #3 · 7年之前
zhengzaishuruzhengzaishuru #1 回复

关键点有两个, GOARCH=amd64,这个你设置对了, 还有另外一个GOOS=linux, 你现在设置的GOOS=windows, 把你的GOOS改成linux, 再执行编译。

GOOS不是对应的设置页面的OS吗? 我设置的已经是linux了啊?

zhengzaishuru
zhengzaishuru · #4 · 7年之前

在terminal中输入 “go env”,看到你的第二张截图GOOS依然是windows

zhengzaishuru
zhengzaishuru · #5 · 7年之前
foreveryoungforeveryoung #3 回复

#1楼 @zhengzaishuru GOOS不是对应的设置页面的OS吗? 我设置的已经是linux了啊?

在terminal中输入 “go env”,看到你的第二张截图GOOS依然是windows

foreveryoung
foreveryoung · #6 · 7年之前
zhengzaishuruzhengzaishuru #4 回复

在terminal中输入 “go env”,看到你的第二张截图GOOS依然是windows

是啊 依然是windows,我的问题就在这,为什么设置了没有生效?还是说goland这里的设置不是对应的GOOS?

zhengzaishuru
zhengzaishuru · #7 · 7年之前

go env打印的是和go相关的环境变量,你在goland里面修改对环境变量并不起作用,注意Goland中BuildTags的描述,

Following options describe target system for the project,IDE will use these values to decide which files should be ignored during validation,resolving and suggesting symbols。

这里并没有说goland的设置对编译器有效。

最后自己写一个脚本用来go build。

zhengzaishuru
zhengzaishuru · #8 · 7年之前
foreveryoungforeveryoung #6 回复

#4楼 @zhengzaishuru 是啊 依然是windows,我的问题就在这,为什么设置了没有生效?还是说goland这里的设置不是对应的GOOS?

go env打印的是和go相关的环境变量,你在goland里面修改对环境变量并不起作用,注意Goland中BuildTags的描述,

Following options describe target system for the project,IDE will use these values to decide which files should be ignored during validation,resolving and suggesting symbols。

这里并没有说goland的设置对编译器有效。

最后自己写一个脚本用来go build。

foreveryoung
foreveryoung · #9 · 7年之前
zhengzaishuruzhengzaishuru #8 回复

#6楼 @foreveryoung go env打印的是和go相关的环境变量,你在goland里面修改对环境变量并不起作用,注意Goland中BuildTags的描述, Following options describe target system for the project,IDE will use these values to decide which files should be ignored during validation,resolving and suggesting symbols。 这里并没有说goland的设置对编译器有效。 最后自己写一个脚本用来go build。

通过设置go build 配置文件,可以生成linux下的ELF文件。那这里的BuildTags设置有什么用呢,这段说明没太看懂

czyt
czyt · #10 · 6年之前

这里没有用,要在Run=>Edit xxxxx这里面添加环境变量

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传