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