Protocol是一种用于通信时结构化数据的工具,相似于XML简单来讲就是一种编码方式。html
在下载protobuf-3.7.1-all以后解压,进入cmake文件夹python
C:\Path\to\protobuf\cmake>mkdir build & cd build C:\Path\to\protobuf\cmake\build>mkdir debug & cd debug C:\Path\to\protobuf\cmake\build\debug>cmake -G "NMake Makefiles" ^ -DCMAKE_BUILD_TYPE=Debug ^ -DCMAKE_INSTALL_PREFIX=../../../../install ^ ../.. -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_BUILD_SHARED_LIBS=ON
其中'-Dprotobuf_BUILD_TESTS'决定是否生成测试程序,'-Dprotobuf_BUILD_SHARED_LIBS'决定是否只生成动态库(lib文件),由于须要静态库(dll文件),因此我选择ON
以后会在protobuf-3.7.1文件夹下生成一个install文件里面是编译好的文件,可是也看你解压以后的文件到底在什么位置,在例程中是这样,具体生成位置能够看cmd显示的编译信息,包括dll文件和lib文件以及exe文件和include头文件。shell
这里生成dll文件是由于在visual studio中的话dll更好使一些,工具
protocol buffer 中有zlib的调用,在使用anaconda以后再编译protocol时便会调用anaconda下的zlib,可是二者不太兼容致使编译出错,
建议:
不要将anaconda的位置设置为全局的环境变量致使该问题。
将protocol buffer 放在其余电脑上编译,在直接的电脑上直接安装使用学习
在使用setup.py安装时,须要将proto的安装位置,或者说proto所在的位置设置为环境变量,使用pip编译时须要调用测试
python -v protoc --version python setup.py build python setup.py test
注意必定都要看README.MD,其中CMAKE的readme在cmake文件夹下,Python的setup的readme在setup.py的同级文件夹下ui
建议去protocol-buffers指南学习,讲解比较详细
具体使用方法见个人博文四种将序列数据转换为Pandas DataFrame数据方法效率对比google