zoukankan      html  css  js  c++  java
  • win10 下 protobuf 与 qt

    编译环境: win10 x64   编译器 :mingw32  cmake 使用场景:Qt4.8.7

    下载 protobuf 最新的代码:https://github.com/google/protobuf 

    点击 configure 

    使用默认的 mingw32 即可,前提是把 mingw32/bin 加到环境变量Path里面。

     

    然后,发现出错了 gmock 没有 ,可以直接勾选取消 gmock 也可以GitHub 自己下载 mock 补充到源码 (我这直接不生成测试了)

    然后在自己指定的文件夹中生成了如下文件

     开始编译 (mingw32-make )是 mingw32/bin 下的exe (此目录已在环境变量Path中了)等待完成即可。

     成果就是它了

    用  .protoc.exe --proto_path=SRC --cpp_out=DST SRC/test.proto 生成文件(自己建立 src 和dst 文件夹 test.proto 放到src文件下)

    // 指定语法规则
    syntax = "proto3";
    
    message Book
    {
        string name = 1;
        int32 pages = 2;
        float price = 3;
    }
    
    message Student
    {
        int32 age = 1;
        string name = 2;
        float score = 3;
        repeated Book arrBook = 4;
    }

    生成 test.pb.h 和 test.pb.cc 建立一个Qt项目测试一下吧

    void MainWindow::on_pushButton_clicked()
    {
        //GOOGLE_PROTOBUF_VERIFY_VERSION;
        Book book;
        Book book2;
        book.set_name("哈哈shishi");
        book.set_pages(32);
        book.set_price(2.63);
        //qDebug()<< book.IsInitialized();
        string str ;
        book.SerializePartialToString(&str);
        book2.ParseFromString(str);
        qDebug()<<QString::fromUtf8(book2.name().c_str())<< " "<<book2.price()<<" "<<book2.pages();
    }

    包含生成的头文件

    #include "test.pb.h"
    #include <QDebug>
    #include <iostream>
    using namespace std;

    配置一下 头文件和库文件

    最后就是结果了,收工。

  • 相关阅读:
    如何简单的管理API
    API管理工具的选择
    项目开发效率怎么提高——围绕API接口文档
    VIM编辑器之常用命令
    ASP.NET 2.0的会员、角色及配置问题的探讨
    常用函数和方法集
    ASP.NET 2.0中实现跨页面提交
    ASP.NET 2.0站点登录、导航与权限管理
    以编程方式使用 ASP.NET 母版页
    如果你想学好C#!就一定要看这个!对你很多帮助!
  • 原文地址:https://www.cnblogs.com/h2zZhou/p/10250495.html
Copyright © 2011-2022 走看看