linux安装protobuf( java开发) - Go语言中文社区

linux安装protobuf( java开发)


说明:
protobuf已经全面迁移到github,地址:https://github.com/google/protobuf
直接下载2.6.1版本:https://github.com/google/protobuf/archive/v2.6.1.zip

$wget https://github.com/google/protobuf/archive/v2.6.1.zip
$unzip protobuf-2.6.1.zip
$cd protobuf-2.6.1
vim autogen.sh

下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件
注意autogen.sh 需要gtest包,默认是从 googletest.googlecode.com下载,国内需要翻墙才能访问,很多人问autogen.sh运行失败,这里我补充一下
修改 autogen.sh
原来的:

echo "Google Test not present.  Fetching gtest-1.5.0 from the web..."
 curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx
 mv gtest-1.5.0 gtest

修改之后:

wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz
tar xzvf release-1.5.0.tar.gz
mv googletest-release-1.5.0 gtest

在这里插入图片描述
运行./autogen.sh 生成 configure
自定义安装路径:

protobuf默认安装在 /usr/local 目录
你可以修改安装目录通过 ./configure --prefix=命令
虽然我是root用户但觉得默认安装过于分散,所以统一安装在/usr/local/protobuf下

$./configure --prefix=/usr/local/protobuf
$ make
$ make check
$ make install

到此步还没有安装完毕,在/etc/profile 或者用户目录 ~/.bash_profile
添加下面内容
####### add protobuf lib path ########
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
######################################

cd /data0/zhenxin/tools/protobuf-2.6.1/src
vim QueryByMids.proto

option java_package = "com.sina";
option java_generic_services = true;
option java_generate_equals_and_hash = true;

message MidRequest {
  required int32 date = 1;
  repeated int64 mids = 2;
}

message MidResult {
  required int32 id = 1;
  required int64 size = 2;
}

message MidResponse {
  repeated MidResult results = 1;
}

service QueryByMidsService {
  rpc getResult(MidRequest)
    returns (MidResponse);
}

./protoc --java_out=. QueryByMids.proto

在这里插入图片描述在这里插入图片描述

在这里插入图片描述

至此如果全部正确:代码不会出现红色了

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_42177380/article/details/93737449
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 21:06:41
  • 阅读 ( 1263 )
  • 分类:Linux

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢