您尚未登录。

楼主 #1 2019-09-29 14:57:26

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 720

从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

以windows系统为例:
1.在windows上安装golang编译器,下载地址:https://golang.google.cn/dl/.默认安装在c盘根目录
2.下载golang编译器源码,地址:https://golang.google.cn/dl/
3.解压缩源码,打开cmd目录定位到源码目录go/src,设置编译参数:
 

  set GOOS=linux
  set GOARCH=arm
  set GOROOT_BOOTSTRAP=C:\Go
  

  set GOROOT_BOOTSTRAP的设置根据自己宿主机上golang的安装目录设定
4.cmd下运行make.bat,开始编译。
5.编译成功后,会在源码目录生成armv5的二进制文件,最好是把go/bin/linux_arm中的go和gofmt复制到go/bin下,这样的目录结构才符合习惯。由于同时还生成了windows版的二进制,删除即可。
6.最后把文件夹go打包成tar.gz。
7.安装很简单,解压并添加运行环境变量。
 

  tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
  export PATH=$PATH:/usr/local/go/bin
  

视频:https://whycan.cn/files/members/1315/gotest2_20190929-1501.7z

最近编辑记录 kekemuyu (2019-09-29 15:22:16)

离线

#2 2019-09-29 15:07:13

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

感谢分享!

我先来试一试.



-----------------
看了一下, 这个是用 go 编译 go?

最近编辑记录 晕哥 (2019-09-29 15:09:23)





在线

#3 2019-09-29 15:21:41

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

楼主的视频解压:

gotest2.gif

gif采用的是单帧压缩, 理论上用 h.264 压缩码率会小很多。





在线

#4 2019-09-29 15:47:04

xiaohui
会员
注册时间: 2019-01-15
已发帖子: 259
积分: 122.5

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

晕哥 说:

感谢分享!

我先来试一试.



-----------------
看了一下, 这个是用 go 编译 go?

go是自举的

离线

楼主 #5 2019-09-29 15:58:45

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 720

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

xiaohui 说:
晕哥 说:

感谢分享!

我先来试一试.



-----------------
看了一下, 这个是用 go 编译 go?

go是自举的

是的,从1.5开始才自举的,之前是用c实现的go编译器。

离线

#6 2019-09-29 16:12:51

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

原来如此, 我去学习一下。





在线

#7 2019-09-29 17:15:45

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

2019-09-29_171347.png

C:\Users\Administrator>  set GOOS=linux

C:\Users\Administrator>  set GOARCH=arm

C:\Users\Administrator>  set GOROOT_BOOTSTRAP=C:\Go

C:\Users\Administrator>  cd c:\go\src

c:\Go\src>make.bat
Building Go cmd/dist using C:\Go
Building Go toolchain1 using C:\Go.
go tool: no such tool "compile"
go tool: no such tool "compile"
go tool dist: FAILED: C:\Go\bin\go install -gcflags=-l -tags=math_big_pure_go co
mpiler_bootstrap bootstrap/cmd/...: exit status 2
系统找不到指定的批处理标签 - fail

请问这是为什么呢?

一开始我用 https://dl.google.com/go/go1.13.1.windows-amd64.zip 不行,
后来改用 https://dl.google.com/go/go1.13.1.windows-amd64.msi 还是不行。





在线

楼主 #8 2019-09-29 20:23:50

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 720

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

晕哥 说:

https://whycan.cn/files/members/3/2019-09-29_171347.png

C:\Users\Administrator>  set GOOS=linux

C:\Users\Administrator>  set GOARCH=arm

C:\Users\Administrator>  set GOROOT_BOOTSTRAP=C:\Go

C:\Users\Administrator>  cd c:\go\src

c:\Go\src>make.bat
Building Go cmd/dist using C:\Go
Building Go toolchain1 using C:\Go.
go tool: no such tool "compile"
go tool: no such tool "compile"
go tool dist: FAILED: C:\Go\bin\go install -gcflags=-l -tags=math_big_pure_go co
mpiler_bootstrap bootstrap/cmd/...: exit status 2
系统找不到指定的批处理标签 - fail

请问这是为什么呢?

一开始我用 https://dl.google.com/go/go1.13.1.windows-amd64.zip 不行,
后来改用 https://dl.google.com/go/go1.13.1.windows-amd64.msi 还是不行。

源码包下了吗?你的宿主安装路径是c:/go吗?不要用宿主里的src,那个应该不是源码,要用官方下载的源码包。你看我的视频,我是把源码包解压到了另外的文件夹,不要和宿主机里的go目录混淆了。

最近编辑记录 kekemuyu (2019-09-29 20:26:08)

离线

#9 2019-09-29 22:51:25

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,342
积分: 9202

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

好, 谢谢楼主, 明天我再试一试.





在线

楼主 #10 2019-09-29 22:59:29

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 720

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

晕哥 说:

楼主的视频解压:

https://whycan.cn/files/members/1315/gotest2.gif

gif采用的是单帧压缩, 理论上用 h.264 压缩码率会小很多。

这个我就不懂了,但是这个gif录屏软件使用了特殊的算法,使得同等质量同等时常视频比mp4体积小好几倍,它是只有屏幕变化的部分占空间,不变的部分几乎不占空间。你可以试试screentogif,比较一下。

离线

#11 2019-11-18 12:09:57

eureka
会员
注册时间: 2019-11-06
已发帖子: 2
积分: 2

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

在host os 里面直接可以编译 target 可运行的程序,感觉这个步骤都省了,譬如在ubuntu里面编译test.go:

GOARM=7 GOARCH=arm GOOS=linux go build  test.go

离线

楼主 #12 2019-11-18 12:13:26

kekemuyu
会员
注册时间: 2018-12-13
已发帖子: 849
积分: 720

Re: 从源码构建f1c100s的go语言编译器的二进制安装包(适用于armv5架构)

eureka 说:

在host os 里面直接可以编译 target 可运行的程序,感觉这个步骤都省了,譬如在ubuntu里面编译test.go:

GOARM=7 GOARCH=arm GOOS=linux go build  test.go

当然可以交叉编译,这里只是测试armv5平台运行go编译器的可行性

最近编辑记录 kekemuyu (2019-11-18 12:13:41)

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn