protobuf与protoc-gen-go

一、protobuf安装

下载地址 :https://github.com/protocolbuffers/protobuf/releases

新直接./configure就行,这个是protobuf 3版本

tar zvxf protobuf-all-3.6.1.tar.gz
cd protobuf-3.6.1
./configure -–prefix=/usr/local/
sudo make  #要编译很久
sudo make check
sudo make install
protoc –version #查看版本

二、什么是protoc-gen-go

protoc-gen-go是protobuf编译插件系列中的Go版本。从上一小节知道原生的protoc并不包含Go版本的插件,不过可以在github上发现专门的代码库(参见github库)。

由于protoc-gen-go是Go写的,所以安装它变得很简单,只需要运行 go get -u github.com/golang/protobuf/protoc-gen-go,便可以在$GOPATH/bin目录下发现这个工具。至此,就可以通过下面的命令来使用protoc-gen-go了。

protoc --go_out=output_directory input_directory/file.proto

其中"--go_out="表示生成Go文件,protoc会自动寻找PATH(系统执行路径)中的protoc-gen-go执行文件。

export PATH = $PATH:$GOPATH/bin

go的插件是protoc-gen-go,调用过上面的指令后,如果$GOBIN没有被设置,这个插件会被安装在$GOPATH/bin目录,如果$GOBIN和$GOPATH都没有设置,默认应该在~/go/bin目录。我们需要将protoc-gen-go所在的目录添加到$PATH目录中,否则在调用如下语句时:

如果没有配置会报错:

protoc -I=. --go_out=. addressbook.proto

protoc-gen-go: program not found or is not executable Please specify a program using absolute path 

参考:

https://www.cnblogs.com/fnlingnzb-learner/p/10534038.html

https://blog.csdn.net/weixin_42654444/article/details/82945195

https://blog.csdn.net/shirley_vacuum/article/details/86000311

https://www.cnblogs.com/albizzia/p/10781028.html

你可能感兴趣的:(go)