如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信相关的知识,希望对你有一定的参考价值。
参考技术A 1.下载protobuff,我下的是2.3.0版本最新的protobuf可以到Google Code上下载:http://code.google.com/p/protobuf/downloads/list
当前版本为2.3.0,下载两个压缩包:protoc-2.3.0-win32.zip和protobuf-2.3.0.zip,前者是protobuf的编译器,后者包含了有三程序语言的开发包。
2.解压
首先解压protoc-2.3.0-win32.zip,把protoc.exe文件放到path路径中,最简单的做法就是把这个文件拷贝到C:/WINDOWS目录下。
解压protobuf-2.3.0.zip文件,将文件加压到C盘根目录,主文件位于C:/protobuf-2.3.0/protobuf-2.3.0目录下。
3.安装操作
(1)使用VS2005编译proto,VS工程目录位于vsprojects目录中,工程名字为“protobuf.sln”。
(2)选择“生成”à“生成解决方案”选项进行编译,编译过程中可能会由于编译的顺序报错误,可以使用手工逐个顺序编译生成,可能会比较顺利。按照下图的顺序,右键“重新生成”,逐个编译。但是我在实习操作过程中,libprotobuf-lite工程重来都没有成功编译通过过。淡定先,这个不会影响大局的。
(3)编译完成会在目录vsprojects下的Debug目录中生成lib和exe文件。
生成清单如下:
exe文件:
2010-04-15 09:51 950,272 lite-test.exe
2010-04-15 09:50 3,219,456 protoc.exe
2010-04-15 09:48 9,228,288 tests.exe
2010-04-15 09:56 2,519,040 test_plugin.exe
lib文件:
2010-04-15 09:50 2,685,922 libprotobuf-lite.lib
2010-04-15 09:56 24,100,794 libprotobuf.lib
2010-04-15 09:56 17,302,068 libprotoc.lib
其实我在测试过程中,lite-test.exe和libprotobuf-lite.lib并没有生成,因为编译错误了,但这并不影响大局,淡定先。
(4)OK,至此,我们已经完成了编译工作,下面需要进行的是protobuf的测试。我们需要使用到之前VS编译出来的libprotobuf.lib和libprotoc.lib完成一个C/S结构的SOCKET通信测试。
àProtobuf的测试
在VS2005下,创建两个新的工程,分别命名为server和client,每个工程都需要引用protobuf的头文件和lib文件。
一、添加protobuf头文件操作:右击项目à属性à配置属性àC/C++à常规 (也命令行可在中添加)。具体路径:C:/protobuf-2.3.0/protobuf-2.3.0/src
二、添加protobuf的lib文件操作:右击项目à属性à配置属性à链接器à常规(也可在命令行中添加)。具体路径:C:/protobuf-2.3.0/protobuf-2.3.0/vsprojects/Debug
三、CMD窗口下编译生成头文件:
C:/protobuf-2.3.0/protobuf-2.3.0/examples>protoc -I=./ --cpp_out=./ people.proto
将proto文件生成的文件放到当前目录。本回答被提问者采纳 参考技术B http://blog.csdn.net/monkey_d_meng/article/details/5894910
如何冻结仅在虚拟环境中安装的软件包?
【中文标题】如何冻结仅在虚拟环境中安装的软件包?【英文标题】:How to freeze packages installed only in the virtual environment? 【发布时间】:2011-12-25 18:20:03 【问题描述】:如何冻结只安装在虚拟环境中的包,即没有全局的包?
【问题讨论】:
【参考方案1】:对我(macOS)来说,以下工作
path/to/venv/bin/pip3 freeze -l
【讨论】:
【参考方案2】:我在 Windows 10,python 3.6 上,使用命令提示符激活了名为 env 的虚拟环境我发现 pip freeze -l
不起作用(错误),python -m pip freeze -l
不起作用(获取全局包)但更改为我的虚拟环境脚本目录并运行pip freeze
或pip freeze -l
有效。这是我的虚拟环境 env 的此解决方案/解决方法的示例:
cd \env\Scripts
pip freeze > ..\..\requirements.txt
【讨论】:
【参考方案3】:python venv/Path_to/bin/pip freeze -l
【讨论】:
【参考方案4】:您需要使用-l
或--local
选项仅冻结本地包(而不是全局包)
pip freeze -l > requirements.txt
在进行pip freeze -l
之前,请确保您在virtualenv
中工作。
【讨论】:
对我来说这有效(或使用python
用于旧版本):python3 -m pip freeze -l > requirements.txt
【参考方案5】:
试试下面的命令:
pip -E /path/to/env/ freeze
【讨论】:
我认为-E
参数是使用里面的requirements.txt文件来显示版本控制项目地址
它们是不同的“-E”参数:这是命令行参数,表示 pip 在给定的 virtualenv 中执行
你能指点我这方面的文档吗?即使启用了全局站点包,它是否也只冻结指定的 deverelenv?
运行“pip help”并查看“选项”部分。
$ pip -E venv/ freeze Usage: pip COMMAND [OPTIONS] pip: error: no such option: -E
【参考方案6】:
在你的虚拟环境中安装你需要冻结的任何东西,然后
pip freeze > requirements.txt
然后在你不想冻结的虚拟环境中安装包。
【讨论】:
【参考方案7】:仅虚拟环境中的本地包
pip freeze -l > requirements.txt # or --local instead of -l
只有用户在虚拟环境中安装的本地包
pip freeze --user > requirements.txt
有关详细信息,请参阅文档:https://pip.pypa.io/en/stable/reference/pip_freeze/。
【讨论】:
以上是关于如何在Windows环境下的VS中安装使用Google Protobuf完成SOCKET通信的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 10 中安装 PostgreSQL 和连接设置
Win10 Hyper-v 中安装 CentOS 搭建开发环境