zoukankan      html  css  js  c++  java
  • Linux Eclipse 运行Protobuf

    安装环境Ubuntu 14.04 64 bit

    安装过程分为三步

    1. Linux下安装Protobuf

    2. Eclipse下安装protobuf.dt插件

    3. Eclipse下配置动态链接库并运行demo

    第一步 Linux下安装protobuf

    到官网下载protobuf,目前的最新版本是2.5.0,也是超过1年没有更新了

    解压,进入文件夹内,依次运行下面的命令

    ./config

    make

    make check

    sudo make install(这一步需要管理员权限,否则会报错)

    修改动态链接库

    sudo su - 以管理员身份执行下面的命令

    在 vim ld.so.conf 加入 /usr/local/lib保存退出

    执行ldconfig

    protoc --version 即可看到版本号

    这里注意,首先make install命令需要创建文件夹,因此要管理员权限;其次,直接su ldconfig在我机器上会报错,我就直接sudo su -;最后,我直接将./config安装到默认的文件夹下(/usr/local/lib)下了,因此不需要配置环境变量

    第二步 Eclipse下安装protobuf.dt插件

    链接: https://code.google.com/p/protobuf-dt/wiki/Installing

    实际上需要装两个插件,一个是xtext, 另外是protobuf-dt

    直接到eclipse的market去搜就行了

    我先装的xtext2.6,又装了protobuf-dt,结果安装失败了,又装了一遍xtext才成功,不知道为什么。

    安装完毕后需要在preference做些配置,默认情况下protobuf是不启用的

    配置可参考链接: https://code.google.com/p/protobuf-dt/wiki/IntegrationWithProtoc

    完成第二步后,可以尝试在一个project钟写xxx.proto文件,你会看到语法高亮,保存后,会自动生成src-gen文件夹,文件夹下有xxx.pb.h和xxx.pb.cc文件

    第三步 配置动态链接库

    #include "msg.pb.h"
    #include <fstream>
    #include <iostream>
    using namespace std;
    
    int main(void) {
        lm::helloworld msg1;
        msg1.set_id(101);
        msg1.set_str("hello");
    
        fstream output("./log", ios::out | ios::trunc | ios::binary);
    
        if(!msg1.SerializeToOstream(&output)) {
            cerr << "Failed to write msg." << endl;
            return -1;
        }
        return 0;
    }

    写了一个demo,eclipse下编译失败。

    但在命令行下 g++ msg.pb.cc writer.cpp -o writer -lprotobuf -lpthread就能编译成功

    右击project,依次点击preference, C/C++ Buid, Settting, 在Setting下,找到GCC C++ Linker, Libraries, 在Libraries(-l)中添加两个条目,分别是protobuf和pthread

    第三步卡了我很久,其实这个问题在我以前用boost的时候就碰到过,当初的情况好些,毕竟boost用的人比较多,最终也是靠查找以前做的记录才搞好。

  • 相关阅读:
    合理配置SQL Server的最大内存
    理解内存----优化SQL Server内存配置
    Systems Performance: Enterprise and the Cloud 读书笔记系列
    google perftools分析程序性能
    源代码分析-构建调用图
    Intel VTune性能分析器基础
    代微机原理与接口技术(第3版)课程配套实验包和电子课件
    【MySQL性能优化】MySQL常见SQL错误用法
    Linux 内核分析 -- Linux内核学习总结
    《Linux就该这么学》 软件库
  • 原文地址:https://www.cnblogs.com/xinsheng/p/3879145.html
Copyright © 2011-2022 走看看