安装指定的Protobuf版本到Mac-Protobuf2.6.1

摘要:
你可以cd/usr/local/bin/ls-a按照我的方法,肯定能看见protoc-gen-objc。protobuf就是我们想要的,另外两个是依赖库接着gitclonehttps://github.com/alexeyxo/protobuf-objc.git完成后cd~/protobuf-objc./autogen.sh./configure~/protobuf-objc其实就是刚刚clone的文件目录进行./configure可能会报错,不过别着急,先分析错误信息configure:error:ERROR:protobufheadersarerequired.Youmusteitherinstallprotobuffromgoogle,orifyouhaveitinstalledinacustomlocationyoumustadd'-Iincludedir'toCXXFLAGSand'-Llibdir'toLDFLAGS.Ifyoudidnotspecifyaprefixwheninstallingprotobuf,try'./configureCXXFLAGS=-I/usr/local/includeLDFLAGS=-L/usr/local/lib'Insome64-bitenvironments,tryLDFLAGS=-L/usr/local/lib64.仔细看,不难发现终端给出了解决办法,我想这应该是跟系统是不是64位有关吧。./configureCXXFLAGS=-I/usr/local/includeLDFLAGS=-L/usr/local/lib运行通过后,makemakeinstall最终生成的插件名字为protoc-gen-objc,会被安装到/usr/local/bin/目录下。

最近新项目用到了Protobuf来储存数据,安装时遇到了不少坑,网上也有很多把Protobuf集成到iOS系统上但是坑很多

下边总结一下安装流程:

查看官方文档
源码在https://github.com/google/protobuf, 如果不想自己编译获得最新版本,则可以下载官方编译好的各个平台的,下载地址:https://github.com/google/protobuf/releases找到自己需要的版本,例如要装2.6.1的话下载protobuf-2.6.1.zip

第一步:cd /Users/sddd/Downloads/protobuf-2.6.1

第二步:运行 ./configure

第三步:运行 make

第四步:运行 make check

第五步:运行 make install

如何没有权限的话,在前边加上sudo

第六步:

是依赖库
git clone https://github.com/alexeyxo/protobuf-objc.git 完成后

cd ~/protobuf-objc

./autogen.sh

./configure

~/protobuf-objc其实就是刚刚clone的文件目录

进行./configure 可能会报错,不过别着急,先分析错误信息

configure: error:

ERROR: protobuf headers are required.

You must either install protobuf from google,

or if you have it installed in a custom location

you must add '-Iincludedir' to CXXFLAGS

and '-Llibdir' to LDFLAGS.

If you did not specify a prefix when installing

protobuf, try

'./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

In some 64-bit environments, try LDFLAGS=-L/usr/local/lib64.

仔细看,不难发现终端给出了解决办法,我想这应该是跟系统是不是64位有关吧(个人猜测)。

./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib

运行通过后,

make

make install

最终生成的插件名字为protoc-gen-objc,会被安装到/usr/local/bin/目录下。

你可以

cd /usr/local/bin/

ls -a

按照我的方法,肯定能看见protoc-gen-objc。

如果没有make命令的话:

brew -v

如果没有安装的话ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

brew install automake
brew install libtool

到这里就可以安装成功了,具体集成到项目上可以查看转发的博客上

在终端protoc --version

接下来是如何编译一个proto的文件

1: 打开终端: cd 到放proto的文件夹下
2:输入命令:protoc --plugin=/usr/local/bin/protoc addressbook.proto --cpp_out="./" 这个是生成c++ .h .cc文件
3:输入命令:protoc --plugin=/usr/local/bin/protoc addressbook.proto --objc_out="./" 这个是生成oc .h .m 文件
如果要安装最新版本的话,下面还有一个方案

首先:打开终端

brew -v

如果没有安装的话ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

brew install automake
brew install libtool
brew install protobuf
就是利用brew下载安装了。protobuf就是我们想要的,另外两个是依赖库
接着
git clone https://github.com/alexeyxo/protobuf-objc.git 完成后

cd ~/protobuf-objc

./autogen.sh

./configure

~/protobuf-objc其实就是刚刚clone的文件目录

进行./configure 可能会报错,不过别着急,先分析错误信息

configure: error:

ERROR: protobuf headers are required.

You must either install protobuf from google,

or if you have it installed in a custom location

you must add '-Iincludedir' to CXXFLAGS

and '-Llibdir' to LDFLAGS.

If you did not specify a prefix when installing

protobuf, try

'./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib'

In some 64-bit environments, try LDFLAGS=-L/usr/local/lib64.

仔细看,不难发现终端给出了解决办法,我想这应该是跟系统是不是64位有关吧(个人猜测)。

./configure CXXFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib

运行通过后,

make

make install

最终生成的插件名字为protoc-gen-objc,会被安装到/usr/local/bin/目录下。

你可以

cd /usr/local/bin/

ls -a

按照我的方法,肯定能看见protoc-gen-objc。

一切准备就绪,我们来测试下。

在桌面创建一个 ProtoBuf的文件夹。然后

cd ~/Desktop/ProtoBuf

protoc --plugin=/usr/local/bin/protoc-gen-objc person.proto --objc_out=./

protoc会自动在/usr/local/bin/目录下寻找名为”protoc-gen-objc”的插件,并使用该插件编译.proto文件,最终生成两个文件:

Person.pb.h

Person.pb.m

推荐比较好的博客:

http://www.jianshu.com/p/d5642a7d1e10?nomobile=yes

http://www.jianshu.com/p/cbbb0bfd0bb6

 
 

免责声明:文章转载自《安装指定的Protobuf版本到Mac-Protobuf2.6.1》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Win10中Anaconda jupyter notebook 闪退问题Linux Mint 18.2 安装和修改字体下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MXNet深度学习库简介

MXNet深度学习库简介 摘要: MXNet是一个深度学习库, 支持C++, Python, R, Scala, Julia, Matlab以及JavaScript等语言; 支持命令和符号编程; 可以运行在CPU,GPU,集群,服务器,台式机或者移动设备上. mxnet是cxxnet的下一代, cxxnet借鉴了Caffe的思想, 但是在实现上更加干净....

centos 安装和配置 rabbitmq

centos 安装 rabbitmq 1、rabbitmq是erlang语言开发的,安装前首先需要安装erlang# yum install erlang -y // 直接安装可能报错,# yum install ncurses-devel // 安装依赖官方下载erlang包# wget http://erlang.org/download/otp_sr...

Android Protobuf应用及原理

前言 之前一直忙于移动端日志SDK Trojan的开源工作,已十分稳定地运行在饿了么团队App中,集成了日志加密和解密功能。哎呀,允许我卖个狗皮膏药,不用不知道,用了就知道,从此爱不释手,Trojan其实是一个很好用的膏药,甚至是一剂不可或缺的良药,能帮助我们跟踪在线用户,解决疑难杂症。 闲话少说,进入今天的正题,Protobuf,可能大家对此很陌生,...

安装protobuf可能遇到的问题

下载protobuf-2.3.0:    http://protobuf.googlecode.com/files/protobuf-2.3.0.zip     http://code.google.com/p/protobuf/downloads/list安装: unzip protobuf-2.3.0.zipcd protobuf-2.3.0./con...

如何在Windows下搭建Android开发环境

Android SDK 2.2 开发环境搭建 (1) 安装必备。(以下为Android开发中必备的软件与工具)1.1 安装jdk。Android目前支持以下jdk版本:jdk1.5,jdk1.6如果未安装可以到官方下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html下载...

Fedora 15 安装与配置一览[转]

Fedora 15 将于2011.5.24日发布,今日离正式版发布还有4天。笨兔兔这里提前给大家支招用好Fedora 15。下面是笨兔兔在安装、配置Fedora 15 过程中的小结,希望给大家配置自己的Fedora 15 带来方便。仅供参考,如有错误,敬请指出。 『一』安装介绍 Fedora 15 Beta 下载地址@http://fedoraprojec...