go命令使用记录(持续更新)

1. 关于go buildgo install命令
go build命令
  • 使用etcd/raft时,想运行别人的example试试,官网也给了命令:
$ cd ~/GOPATH/src/go.etcd.io/etcd/v3/contrib/raftexample #切换到
$ go build -o raftexample
  • 照着官方的一步步来,下一步就可以使用raftexample实现节点的添加了。结果,提示找不到raftexample命令。
$ raftexample
raftexample:未找到命令
  • 通过go help查看go build 命令,其中明确说了不会进行install,但是自己当时没注意到? ?
$ go help build
usage: go build [-o output] [-i] [build flags] [packages]

Build compiles the packages named by the import paths,
along with their dependencies, but it does not install the results.
  • 这里使用了-o选项指定了输出,该选项只能在编译一个package时使用。
  • go build -o raftexample表示将raftexample这个package进行整体编译,输出是名为raftexample的可执行文件,在当前目录输出。
    在这里插入图片描述
  • 解决办法一: 要想在当前目录使用该命令,官网给出的命令有问题:使用的是非~/GOPATH/bin/下的可执行文件,应该带上其路径
$ ./raftexample --id 1 --cluster http://127.0.0.1:12379 --port 12380 # 相对路径
$ ~/GOPATH/src/go.etcd.io/etcd/v3/contrib/raftexample/raftexample \
> --id 1 --cluster http://127.0.0.1:12379 --port 12380 # 绝对路径

在这里插入图片描述

  • 解决办法二:go build命令的-o参数中指定可执行文件的输出路径为~/GOPATH/bin/,可以发现在对应的目录下有名为raftexample的可执行文件生成。在任何路径下,使用raftexample命令,都能生效。
$ go build -o /home/hadoop/GOPATH/bin/raftexample
  1. 生成的可执行文件,如图所示:
    在这里插入图片描述
  2. 运行官网命令,没有问题!
$ raftexample --id 1 --cluster http://127.0.0.1:12379 --port 12380

在这里插入图片描述

  • 解决方法三:go build -o raftexample命令生成的可执行文件拷贝到~/GOPATH/bin/目录。
go install命令
  • 联想到partener写过脚本,实现了项目的编译,然后直接就可以在bin目录下生成对应的可执行文件。
  • 查看partener写的脚本,发现他使用的是go install命令。
  • go install命令给你的help信息如下:
$ go help install
usage: go install [-i] [build flags] [packages]

Install compiles and installs the packages named by the import paths.
  • 根据help信息可知,go install命令可以编译并安装Package,所谓的安装就是指在bin目录下生成可执行文件。
  • 直接使用go install命令:
$ go install ~/GOPATH/src/go.etcd.io/etcd/v3/contrib/raftexample

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值