美文网首页
编译Arm版本的Google的Protobuf-C

编译Arm版本的Google的Protobuf-C

作者: 深秋宁静 | 来源:发表于2018-08-10 11:22 被阅读0次

    在arm上安装和使用Google的Protobuf-C

    步骤如下

    一、安装PC版本的ProtoBuf的相关文件和可执行程序

    1、获取[Protobuf源码](https://github.com/google/protobuf)
    2、编译宿主机版本Protobuf软件,因为Protoc-C依赖Protobuf的库文件和头文件
    1)下载完源码后,执行./autogen.sh
    2)生成一个configure可执行程序
    3)执行./configure --prefix=/usr/local/protobuf没有错误输出,生成Makefile文件
    4)然后执行make && sudo make install 会生成的可执行程序、头文件、lib库在默认的路径下面/usr/local/protobuf
    5)可执行程序protoc用于将规则序列化文件.pro生成源代码供使用者使用
    6)PC版本的测试程序[protobuf.tar.gz](/_attachment/2018-08-10/protobuf.tar.gz)(简书无法上传附件)
    

    2、安装PC版本的Protobuf-C文件

    1、下载[Protobuf-C源码](https://github.com/protobuf-c/protobuf-c.git)
    2、编译PC版本的Protobuf-c文件
    1)执行./autogen.sh
    2)执行./configure的时候会出现(configure: error: required protobuf header file not found)这个错误,需要导入刚才编译好的protobu的生成文件的配置文件pkgconfig的路径信息。解决办法:export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig, 然后在执行./configure,即可生成Makefile文件
    3)执行make && sudo make install 就可以生成protoc-c、头文件、库文件(路径/usr/local/),其中protoc-c用于将.pro文件生成.c .h文件,供应用使用。
    4)pc上的例子[example.tar.gz](/_attachment/2018-08-10/example.tar.gz)(简书无法上传附件)
    

    3、编译arm版本的库文件和头文件

    1、arm版本不需要protoc-c程序,因为生成代码和编译在PC上编译,板子上只是运行应用程序。
    2、同一份protoc-c代码,然后make clean一下
    3、导入arm版本的gcc编译器的环境变量
    4、配置编译信息 ./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ --disable-protoc --prefix=`pwd`/build/protobuf-c-arm,其中相关的arm-xxx是你arm编译器的相关名字,--prefix配置的是你生成文件的路径。
    5、make && make install 即可在你指定的文件夹中看到生成的文件,如我的生成文件。    
    ![2018-08-10_111229.png](https://img.haomeiwen.com/i7311855/edd526bfa847c2c3.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    

    至此arm版本、PC版本的Protobuf-c已经移植完成,验证需使用者自己验证,本人在PC上验证没问题,arm版本的只需修改一下CMakeLists文件里面的部分即可。

    相关文章

      网友评论

          本文标题:编译Arm版本的Google的Protobuf-C

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