protobuf centos编译,centos如何安装软件

cocos2d-x 2.2能编译64位的吗

hadoop2.x在apache官网直接下载的并没有64位直接能用的版本,如果我们想在64位系统使用,那么就需要重新编译hadoop,否则直接使用32位的hadoop运行在64位的系统上,将会出现一些库不兼容的异常。如下图所示,最直接的一个异常:

在这之前,散仙先用一个表格来描述下散仙的编译的环境的状况:

序号描述备注

1 centos6.5系统64位 linux环境

2 Apache Ant1.9 ant编译

3 Apache Maven3.2.1 maven打包部署

4 gcc,gcc-c,make依赖库

5 protobuf-2.5.0序列化库

6 JDK1.7 JAVA环境

7 Hadoop2.5.0源码包官网下载

8菜鸟工程师一名主角

9

下面进入正题,散仙的环境是在centos下,所以大部分安装编译依赖库,都可以很方便的使用yum命令来完成。

1,安装gcc,执行如下的几个yum命令即可

Java代码

yum-y install gcc

yum-y install gcc-c

yum install make

yum install autoconf automake libtool cmake ncurses-devel openssl-devel gcc*

2,安装JDK,并设置环境变量,完成后测试安装成功否

Java代码

[root@ganglia~]# java-version

java version"1.5.0"

gij(GNU libgcj) version 4.4.7 20120313(Red Hat 4.4.7-4)

Copyright(C) 2007 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@ganglia~]#

3,安装Maven,安装完成后测试安装与否

Java代码

[root@ganglia~]# mvn-v

Apache Maven 3.2.1(ea8b2b07643dbb1b84b6d16e1f08391b666bc1e9; 2014-02-15T01:37:52 08:00)

Maven home:/usr/local/maven

Java version: 1.7.0_25, vendor: Oracle Corporation

Java home:/usr/local/jdk1.7.0_25/jre

Default locale: zh_CN, platform encoding: UTF-8

ProtoBuf安装及避坑指南

在安装ProtoBuf前,确保g++为较新版本,若安装过程中遇到问题,尝试安装其他版本,使用`make uninstall`卸载源码安装的版本。在使用VSCode开发时,可能出现头文件检测不到的问题,这时需要查看编译器是否报错,而非仅依赖插件提示。以下为Linux环境下ProtoBuf的安装步骤。

安装依赖库:`autoconf`、`automake`、`libtool`、`curl`、`make`和`g++`,对于Ubuntu用户,使用`sudo apt-get install`命令安装,对于CentOS用户,使用`sudo yum install`命令安装。访问GitHub下载ProtoBuf的指定版本,如v21.11,选择`protobuf-all-21.11.zip`进行下载。在Windows环境下下载后,通过xshell的`rz`指令将文件传输至Linux系统。解压zip包后,进入目录。

执行以下命令进行安装:`./configure`,根据需要选择安装方式。若在`configure`中选择第一种方式,直接执行`make`和`make install`即可完成安装。若选择第二种方式,修改了安装目录,还需在`/etc/profile`中添加相关配置信息,最后执行`source/etc/profile`使配置生效。安装完成后,通过`protoc--version`检查版本信息,显示版本号表示安装成功。

进行ProtoBuf测试示例:创建两个文件`test.cc`和`contacts.proto`。`test.cc`文件包含使用ProtoBuf的示例代码,而`contacts.proto`文件定义了相应的数据结构和字段。执行相关语句进行测试,验证ProtoBuf的安装和使用是否正常。

网络数据通信—ProtoBuf实现序列化和反序列化

Protobuf实现序列化和反序列化

本文将介绍如何通过Protobuf实现网络数据通信,具体案例中我们构建一个通讯录应用,包含客户端和服务器端的交互。主要需求包括:

客户端可执行的操作:新增联系人、删除联系人、查询通讯录列表、查询联系人详细信息。

服务器端提供增删查能力,并确保数据持久化。

客户端与服务器间交互数据使用Protobuf。

环境搭建

选择cpp-httplib库,该库为C++封装的http库,适用于跨平台(如Linux、Windows)的http客户端和服务端开发。使用cpp-httplib时,只需包含头文件httplib.h,并在编译时加上-lpthread选项。相关库源码可访问github.com/yhirose/cpp-...

CentOS环境注意事项

在CentOS下,若使用自带的g++版本(如4.8.5,发布于2015年),在编译项目时可能遇到问题。解决方法是升级gcc/g++至更高版本。

约定双端交互接口

新增联系人

删除联系人

查询通讯录列表

查询联系人详细信息

约定双端交互req/resp

设计了多个protobuf文件用于定义请求和响应结构,包括base_response.proto、add_contact_request.proto至find_all_contacts_response.proto等。

相关视频推荐

高性能服务器通信协议设计的奥秘:XML、JSON、Protobuf性能对比分析

Protobuf序列化协议工程应用方法和实践分析

qq微信即时通讯技术细节:方案选择

C/C++ Linux服务器架构师学习资料分享群:812855908(包含C/C++、Linux、golang等技术资料)

客户端代码实现

main.cc:主程序

ContactException.h:异常类定义

ContactsServer.h:客户端通讯录服务端定义

ContactsServer.cc:客户端通讯录服务实现

服务端代码实现

定义通讯录结构(contacts.proto)

main.cc:服务端主程序

ContactException.h:异常类定义

ContactsServer.h:通讯录服务定义

ContactsServer.cc:通讯录服务实现

Utils.h:工具类定义

ContactsMapper.h:数据持久化接口定义

ContactsMapper.cc:数据持久化接口实现

注:在实际应用中,应将通讯录数据存储至数据库,此处为简化流程,以本地文件作为数据存储。

阅读剩余
THE END