美文网首页
Protocol Buffers 使用 OC iOS

Protocol Buffers 使用 OC iOS

作者: shuolol | 来源:发表于2017-01-04 15:50 被阅读302次

    打开终端!
    brew -v
    查看你的mac里面有没有装brew。brew是mac os里面,类似于ubuntu的apt-get的功能,都可以直接在终端输入命令然后安装程序。-v自然就是版本version的意思

    ruby -e $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

    这一句半懂不懂,大概就是利用curl工具访问那个url,然后在ruby环境下载安装brew
    建议先去Homebrew官网找最新的下载地址
    brew install automake
    brew install libtool
    brew install protobuf
    就是利用brew下载安装了。protobuf就是我们想要的,另外两个是依赖库
    git clone https://github.com/alexeyxo/protobuf-objc.git
    ./build.sh
    从github下载protobuf-objc这个工程,build脚本里面做的是编译。
    我建议不要用 ./build.sh ,我安装过程中发现未知错误最终没有进行下去。哎,好失败。懂脚本的朋友可以尝试下。

    到此,我们先得感谢 http://www.2cto.com/kf/201503/382440.html的文章作者。点开链接的朋友会发现,这都什么吗,明显照抄人家的。。。
    我只能说,该作者前半部分解释的非常好,我是超越不了了,只能完全借用了。其实说白了,就是懒。言归正传:
    当我们 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
    touch person.proto
    vi person.proto

    就按ProtocolBuffer的语法规则简单建立一个.proto的文件

    package csdnblog;
    message PBUser {
    required string userId = 1;
    optional string nick = 2;
    optional string avatar = 3;
    }

    创建完毕后,我们来编译这个person.proto文件。cd到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

    这个步骤通过后,说明ProtocoBuffer Compiler for Objective-C可以正常工作了。

    现在我们可以在Xcode中使用ProtocolBuffer
    ------------------------------------------------------------------------------------------------------熟悉的分割线--------------------------------------------------------------------------------------------------------------
    每次都是这里遇到的问题,
    1、添加/src/runtime/ProtocolBuffers.xcodeproj到自己的工程,楼主把工程文件add进去,各种问题找不到然后放弃了,然后用了命令行
    2、先装好了cocoaPods,这个百度吧,安装的时候可能会在Setting up CocoaPods master repo这个地方登上十几分钟,我装完后是七百多M,所以等了很久...一度想放弃。。。。最后总算成功、这篇文章算是安装的http://my.oschina.net/w11h22j33/blog/206129
    3、安装ProtocolBuffers,cd进入到自己的.xcodeproj文件夹,然后
    a:$ vim Podfile
    //创建一个Podfile的文件,此时在文件夹下可以看到这么个文件
    b:此时在插入模式,命令行里面输入:

    platform :iOS, '8.0'

    target “RecordAndListen” do

    pod 'ProtocolBuffers'
    end

    c:按ESC退出插入模式,输入:wq,表示保存退出,直接打开那个Podfile文件,可以看到里面保存着上面写入的信息。
    d:$ pod install

    此时等待安装完成,然后多了一个.xcworkspace文件,以后打开这个就能用了
    转载同事的博客http://blog.csdn.net/likui1989/article/details/52369950

    相关文章

      网友评论

          本文标题: Protocol Buffers 使用 OC iOS

          本文链接:https://www.haomeiwen.com/subject/ginovttx.html