linux protocol 2 是什么意思

如题所述

下面描述了在 GNU/Linux x86_64(centeros)下安装 protocol buffer,支持 C 和 C++ 。
1. google protocol buffer 下载
下载 google protocol buffer,使用版本 2.5的,主页
http://code.google.com/p/protobuf/
下载地址:
http://code.google.com/p/protobuf/downloads/detail?name=protobuf-2.5.0.tar.gz&can=2&q=
2. protocol buffer C 下载
使用最新的,并有维护的 0.16 版本
下载主页
http://code.google.com/p/protobuf/wiki/ThirdPartyAddOns
下载地址
http://code.google.com/p/protobuf-c/
下面地址是有维护的 0.16 版本
https://github.com/protobuf-c/protobuf-c
3. 安装 google protocol buffer
一般文件名称是 protobuf-2.5.0.tar
执行命令解压
tar -xvzf protobuf-2.5.0.tar
得到目录 protobuf-2.5.0,下面是我的工作目录结构,pb 目录是全部有关 protocol buffer 的支持
/home/huangzhihui/pb/protobuf-2.5.0
执行 configure,构造 makefile 文件
./configure --help
看看携带那些参数,我们指定下面的参数,编译为32 位版本
./configure --prefix=/usr/local/ CFLAGS=-m32 CXXFLAGS=-m32
执行 make,编译完成
执行 make install,编译完成后安装完成
4. 安装 protobuf-c
如果下载的是 protobuf-c-master.zip,windows 上解压后拷贝到 linux 上。
同样建立 /home/huangzhihui/pb/protobuf-c-master目录
因为 protobuf 有些用于 C++ 支持 google rpc 和测试的功能,我们不编译
也不安装它,所有我们这次修改一下 Makefile.am 文件。
统一给 AM_CPPFLAGS 加上 -m32 参数,编译为 32 位的程序;
统一给 AM_CFLAGS 加上 -m32 参数;
统一给 AM_LDFLAGS 加上 -m32 -L/usr/local/lib/ 参数,指定链接库;
注释掉有关 t/generated-code2 目录的所有文件,不参与编译和安装;
执行 configure,构造 makefile 文件
./configure --help
看看携带那些参数,我们指定下面的参数,编译为32 位版本
./configure --prefix=/usr/local/ CFLAGS=-m32 CXXFLAGS=-m32 protobuf_CFLAGS=-I/usr/local/include/ protobuf_LIBS=-L/usr/local/lib/

./configure --prefix=/usr/local/protocol-c-1.0-m32 CFLAGS=-m32 CPPFLAGS=-m32 CXXFLAGS=-m32 --datadir=/usr/local/protocol-c-1.0-m32/datadir protobuf_CFLAGS=-I/usr/local/protocol-2.5-m32/include protobuf_LIBS=-L/usr/local/protocol-2.5-m32/lib PROTOC=/usr/local/protocol-2.5-m32/bin/protoc LDFLAGS=-L/usr/local/protocol-2.5-m32/lib LIBS=-lprotobuf
使用这个语句配置,可以不修改配置文件了。

执行 make,编译完成
执行 make install,编译完成后安装完成
5. 测试 protobuf-c
进入 /home/huangzhihui/pb/protobuf-c-master/t(相对路径t)
执行命令,根据协议描述文件,生成协议源代码
/usr/local/bin/protoc-c test.proto --c_out=./
或者(根据工具protoc-c目录来)

/usr/local/protocol-c-1.0-m32/bin/protoc-c test.proto --c_out=./

静态链接 libprotobuf-c.a
gcc -m32 generated-code/test-generated-code.c test.pb-c.c -I../ -o test /usr/local/lib/libprotobuf-c.a
运行 test,输出 test succeeded.OK
./test
动态链接 protobuf-c
gcc -m32 generated-code/test-generated-code.c test.pb-c.c -I../ -o test -L/usr/local/lib/ -lprotobuf-c
6. 查询 test-generated-code.c
/home/huangzhihui/pb/protobuf-c-master/t/generated-code/test-generated-code.c
通过看这个代码,我们大致能明白 C 使用 protocol buffer 的流程。

7. test-generated-code2.c,验证平台是否完整支持功能
构造测试文件 test-full.pb-c.c
/usr/local/protocol-c-1.0-m32/bin/protoc-c test-full.proto --c_out=./
gcc -m32 test-generated-code2.c ../test-full.pb-c.c -I../ -I../../ -I/usr/local/protocol-c-1.0-m32/include/ -I/usr/local/protocol-2.5-m32/include/ -o test -L/usr/local/protocol-c-1.0-m32/lib/ -lprotobuf-c
./test

8. cxx-generate-packed-data.cc,验证平台是否完整支持功能
export LD_LIBRARY_PATH="/usr/local/protocol-2.5-m32/lib/:/usr/local/protocol-c-1.0-m32/lib/"
构造测试文件 test-full.pb.cc
/usr/local/protocol-2.5-m32/bin/protoc test-full.proto --cpp_out=./
gcc -m32 cxx-generate-packed-data.cc ../test-full.pb.cc -I../ -I../../ -I/usr/local/protocol-c-1.0-m32/include/ -I/usr/local/protocol-2.5-m32/include/ -o test -L/usr/local/protocol-c-1.0-m32/lib/ -lprotobuf-c
./test
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-03-27
shell的位置参数,一个假设脚本的名称为test.sh,并假设它执行时如下: ./test.sh x y 那么$2就表示y
第2个回答  2018-04-12
cat /etc/protocols

第3个回答  2016-03-24
linux protocol 2 是什么意思
协议2 的意思

如何在Linux上检查SSH的版本
Protocol 2 如果如下显示,就代表服务器同时支持SSH1和SSH2。Protocol 1,2

linux开启端口命令?
2、关闭端口号:iptables-AINPUT-ptcp--drop端口号-jDROP,iptables-AOUTPUT-ptcp--dport 端口号-jDROP。3、打开端口号:iptables-AINPUT-ptcp--dport端口号-jACCEPT。4、以下是linux打开端口命令的使用方法。nc-lp22(打开22端口,即telnet),netstat-an|grep22(查看是否打开22端口)。5、linux打开...

Linux下的SSH端口转发配置方法
通常情况下两个不同的网络之间总会开放某一些特定的端口用于通讯使用,而SSH所使用的22端口通常就在开放之列。基于SSH的端口转发就是利用SSH作为中间的代理,达到绕过两个网络之间的限制,顺利的进行任意的端口的访问。端口转发可以分为三种,正向端口转发,反向端口转发和动态端口转发。为了演示这三种端口转发...

linux 网络路径中网络协议栈有几种
Linux中用户空间的网络编程,是以socket为接口,一般创建一个sockfd = socket(family,type,protocol),之后以该sockfd为参数,进行各种系统调用来实现网络通信功能。其中family指明使用哪种协议域(如INET、UNIX等),protocol指明该协议域中具体哪种协议(如INET中的TCP、UDP等),type表明该接口的类型(如S...

什么操作系统的端口??
服务:Interim Mail Access Protocol v2 说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不...

linux开启端口简单命令linux开启端口80
2、然后重启iptables输入"serviceiptablesrestart"重启服务。3、重启成功以后,输入"serviceiptablesstatus",回车就会显示正在生效的规则。怎么在linux打开80端口?具体操作步骤如下:1、首先打开linux的终端,在里面输入指令“vi\/etc\/sysconfig\/iptables”,打开iptables的配置文件,添加一行"-AINPUT-mstate--...

我是菜鸟,大家帮我看看这些端口是不是后门。*:*代表什么?
服务:Interim Mail Access Protocol v2 说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不...

linux的tftp
TFTP是用来下载远程文件的最简单网络协议,它其于UDP协议而实现。嵌入式linux的tftp开发环境包括两个方面:一是linux服务器端的tftp-server支持,二是嵌入式目标系统的tftp-client支持。因为u-boot本身内置支持tftp-client,所以嵌入式目标系统端就不用配置了。下面就详细介绍一下linux服务器端tftp-server的...

端口是什么意思?计算机上有多少端口
服务:Interim Mail Access Protocol v2 说明:和POP3的安全问题一样,许多IMAP服务器存在有缓冲区溢出漏洞。记住:一种LINUX蠕虫(admv0rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已经被感染的用户。当REDHAT在他们的LINUX发布版本中默认允许IMAP后,这些漏洞变的很流行。这一端口还被用于IMAP2,但并不...

在linux下 怎么查看网络接口的名字
2、第二步可以看到已经远程连接到linux系统服务器了,如下图所示:3、第三步输入“ifconfig -a”命令,来查看linux系统ip,如下图所示:4、第四步按回车键之后,可以查看到linux系统的ip地址,在eth0的下方inet旁边就是内网ip地址,如下图所示:5、第五步也可以看一下按回车键的信息,eth0是网卡...

相似回答