linux下安装protobuf教程+示例(详细)
看这个就应该知道是没有找到头文件,那么可以使用g++ 的-I 参数:
-I/usr/local/lib/protobuf/include来命令g++在/usr/local/lib/protobuf下查找头文件
以上/usr/local/lib/protobuf/是我的protobuf的安装地址,请替换成你的
5> 写消息文件:msg.proto
- package lm;
- message helloworld
- {
- required int32 id = 1; // ID
- required string str = 2; // str
- optional int32 opt = 3; //optional field
- }
- #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;
- }
- #include "msg.pb.h"
- #include <fstream>
- #include <iostream>
- using namespace std;
- void ListMsg(const lm::helloworld & msg) {
- cout << msg.id() << endl;
- cout << msg.str() << endl;
- }
- int main(int argc, char* argv[]) {
- lm::helloworld msg1;
- {
- fstream input("./log", ios::in | ios::binary);
- if (!msg1.ParseFromIstream(&input)) {
- cerr << "Failed to parse address book." << endl;
- return -1;
- }
- }
- ListMsg(msg1);
- }
8> 写Makefile文件
- all: write reader
- clean:
- rm -f write reader msg.*.cc msg.*.h *.o log
- proto_msg:
- protoc --cpp_out=. msg.proto
- write: msg.pb.cc write.cc
- g++ msg.pb.cc write.cc -o write `pkg-config --cflags --libs protobuf`
- reader: msg.pb.cc reader.cc
- g++ msg.pb.cc reader.cc -o reader `pkg-config --cflags --libs protobuf`
linux下安装protobuf教程+示例(详细)的更多相关文章
- Linux下安装GB2312的示例
Linux下安装GB2312的示例 Step 1: 到Linux字符集的安装包目录下 [cd /usr/share/i18n/charmaps] Step 2: 解压该目录下的GB2312.gz ...
- Linux下安装mysql教程
Linux下安装mysql MySQL官网:https://dev.mysql.com/downloads/mysql/ 到mysql官网下载mysql编译好的二进制安装包,在下载页面Select ...
- Linux下安装protobuf并实现简单的客户端服务器端通信
http://code.google.com/p/protobuf/downloads/list上可以下载Protobuf的源代码. 安装步骤如下所示: 1>tar -xzf protobuf- ...
- linux下 安装mysql教程
安装环境:系统是 centos6.5 1.下载 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html#downloads 下载版本:我这里选择的5.6. ...
- Linux下安装mysql-5.7.28详细步骤
一.下载Mysql 下载地址:https://downloads.mysql.com/archives/community/ 二.环境配置 检测系统是否自带Mysql # rmp -qa|grep m ...
- linux下安装protobuf及cmake编译
一.protobuf 安装 protobuf版本:2.6.1 下载地址:https://github.com/google/protobuf/archive/v2.6.1.zip 解压之后进入目录 修 ...
- linux下安装mysql5.7.25详细教程
前言 最近项目上线,开始给用户测试了.搞下来好多台服务器,自然要装一个mysql的服务器.想想广大博友应该都会遇到如何装mysql的问题,就此分享,给大家一个安装指南.供大家以后安装的时候,提高效率, ...
- Linux下安装mysql(示例mysql5.6安装)
1.首先检查你的linux上是否已经安装了mysql rpm -qa|grep mysql 2.如果mysql的版本不是想要的版本.需要把mysql卸载 yum remove mysql mysql- ...
- Linux下安装Nginx教程
什么是Nginx? Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器,在高连接并发的情况下N ...
随机推荐
- flask-admin
初始化 class Admin(app=None, name=None, url=None, subdomain=None, index_view=None, translations_path=No ...
- js跟随鼠标移动的写法
<script> window.onload=function(){ document.onmousemove=function (ev) { var oEvent=ev||event; ...
- XML内容作为String字符串读取报错
解决方案: 1.把头信息<?xml version='1.0' encoding='UTF-8'?>,但是内容会丢失部分: 2.用XmlDocument解析就OK. 正确代码: ...
- Solaris磁盘设备
Solaris的磁盘分区称为分片(slice),在磁盘上,一个环形就是一个分区分片的命名通常是c#t#d#s#c:Controller number,控制器标号,c0就是第一个控制器t:Taget n ...
- Linux系统在嵌入式硬件上的移植
========================= 基本常识 ========================= 一. Linux系统的基本构成: 1. loader 2. ...
- JS模块化工具requirejs教程(二):基本知识
基本API require会定义三个变量:define,require,requirejs,其中require === requirejs,一般使用require更简短 define 从名字就可以看出 ...
- linux BASH shell设置字体与背景颜色
linux BASH shell下设置字体及背景颜色的方法. BASH shell下设置字体及背景颜色 echo -e "\e[31mtest\e[41m" \e[30m 将字 ...
- php 实现多线程
通过php的Socket方式实现php程序的多线程.php本身是不支持多线程的,那么如何在php中实现多线程呢?可以想一下,WEB服务器本身都是支持多线程的.每一个访问者,当访问WEB页面的时候,都将 ...
- centos yum 安装问题
yum [Errno 256] No more mirrors to try 解决方法 输入下面的命令即可解决问题: yum clean all yum makecache 导致 centos安装软件 ...
- VMware虚拟机升级过程中遇到的一点问题
在将VWware由9.0升级到10.0的过程中,出现如下图的错误: failed to create the requested registry key Key:Installer e ...