linux下安装go图形编译器,Ubuntu 18.04 源码安装go编译器

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

这篇文章介绍的是如何在Ubuntu 18.04 LTS下安装1.5及更高版本go语言编译环境的方法。由于1.5及更高版本的go语言编译器需要依赖go1.4版本,所以我们需要在安装1.4版本后,再安装更高版本。

¶前期准备

¶安装必要的工具

在命令行中输入1sudo apt-get install bison ed gawk gcc libc6-dev make

¶下载go语言封装包

前往https://golang.org/dl/,分别下载1.4版本及更高版本的封装包。这里以go1.12.7为例。注意,我们是在Linux Ubuntu系统下安装go的,因此下载的封装包,文件名应该是go1.xx.xx.linux-amd64.tar.gz。

除了从网页上下载,你也可以用wget命令在终端直接下载:1wget https://dl.google.com/go/go1.4.linux-amd64.tar.gz1wget https://dl.google.com/go/go1.12.7.linux-amd64.tar.gz

¶设置环境变量

修改/etc/profile文件:1sudo vim /etc/profile

在结尾处添加1

2

3+export GOROOT=$HOME/go

+export PATH=$PATH:$GOROOT/bin

+export GOPATH=$HOME/go_program

修改完之后,执行下面的命令使配置文件生效1source /etc/profile

注意Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。使用修改/etc/profile 文件进行环境变量的编辑,是对所有用户有用。如果你修改的环境变量,只想对当前用户生效,那就对~/.bashrc文件进行环境变量的编辑,只对当前用户有用。

不会使用vim的话,可以把命令行中的vim修改成gedit。不过还是推荐用vim,这边涉及到的操作是:按Insert进入插入模式,在文件结尾添加上面提到的三行代码。然后按Esc退回到命令行模式,按:进入Last line mode,输入wq保存并退出就行啦。

$HOME是linux系统中预设好的环境变量,指向~所在的文件目录,如果你不知道在你系统中$HOME具体是哪里的话,可以在命令行中输入echo $HOME查看:1

2/home/swayye

在修改的/etc/profile中的最后一行,也就是GOPATH那一行代码,你可以自己指定文件目录,记得修改完/etc/profile之后,要自己去那个目录创建对应文件夹,以我为例:1mkdir /home/swayye/go_program

¶安装go1.4

cd到下载go1.4.linux-amd64.tar.gz的目录,解压压缩包:1tar -zxvf go1.4.linux-amd64.tar.gz

解压完成后,会在当前目录生成名为go的文件夹,将文件夹移到/home/xxx,xxx为计算机名,并将文件名改为go1.4。1mv go /home/xxx/go1.4

安装go1.4编译器1

2cd go1.4/src

sudo CGO_ENABLED=0 ./make.bash

上文提到过,安装1.4以上的go编译器需要依赖1.4版本,这个在编译器领域叫bootstrapping,中文翻译叫自举或自展,通俗地讲“用要编译的目标语言编写其编译器。

Go 1.5开始编译器和运行时用go自身编写,all.bash 编译脚本会在$GOROOT_BOOTSTRAP环境变量中查找一个已经存在的go tool chain,实际上就是要有一个编译好的bin/go程序。这里我们运行好1.4版本的./make.bash后,会在/home/xxx/go1.4/bin生成一个二进制文件,现在我们把它添加为$GOROOT_BOOTSTRAP环境变量:1export GOROOT_BOOTSTRAP=/home/swayye/go1.4

这样我们就可以编写更高版本的go编译器了

¶安装go1.12.7

同样地,解压1.12.71tar -zxvf go1.4.linux-amd64.tar.gz

将解压出来的go文件夹移到/home/xxx1mv go /home/swayye

安装1.12.71

2cd /home/swayye/go/src

./all.bash

在完成安装后输入go env,如显示以下内容,说明成功了1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27GOARCH="amd64"

GOBIN=""

GOCACHE="/home/swayye/.cache/go-build"

GOEXE=""

GOFLAGS=""

GOHOSTARCH="amd64"

GOHOSTOS="linux"

GOOS="linux"

GOPATH="/home/swayye/go_program"

GOPROXY=""

GORACE=""

GOROOT="/home/swayye/go"

GOTMPDIR=""

GOTOOLDIR="/home/swayye/go/pkg/tool/linux_amd64"

GCCGO="gccgo"

CC="gcc"

CXX="g++"

CGO_ENABLED="1"

GOMOD=""

CGO_CFLAGS="-g -O2"

CGO_CPPFLAGS=""

CGO_CXXFLAGS="-g -O2"

CGO_FFLAGS="-g -O2"

CGO_LDFLAGS="-g -O2"

PKG_CONFIG="pkg-config"

GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build290674534=/tmp/go-build -gno-record-gcc-switches"

你还可以测试一个简单的代码:文件位置:/home/swayye/go_program/hello.go1

2

3

4

5package main

func (){

println("Hello", "world")

}

运行代码:1go run hello.go

输出Hello world,说明就没有什么问题了。

¶参考文献

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值