VS2017 C# 開發(fā)環(huán)境下 Protobuf 安裝

安裝準備:

1.Visual Studio 2017 Community : 15.3.5
2.CMake : cmake-3.9.3-win64-x64.msi
3.Protobuf:3.4.1

開始安裝

注:其實全部的步驟基本都有在README文件中有說明,文件在protobuf-3.4.1\cmake\README.md

1.VS2017的安裝方面,按照指引安裝,C#方面需要用到的插件和工具盡量按照默認的勾選進行安裝,避免產生奇怪的異常

Paste_Image.png

2.CMake的安裝,默認安裝,可以修改安裝路徑,安裝后使用cmake確認是否路徑配置也完成

Paste_Image.png

3.Protobuf安裝,需要通過CMake進行

(1)將Protobuf壓縮包解壓到磁盤目錄下,在哪里不影響
例如:

F:\Protobuf\protobuf-3.4.1

(2)在Protobuf解壓的目錄內的cmake文件夾內建立debug,release文件夾(兩者其一,或者兩者兼?zhèn)洌?,用于CMake對Protobuf的debug版和release版的安裝
例如:

F:\Protobuf\protobuf-3.4.1\cmake\build\debug
F:\Protobuf\protobuf-3.4.1\cmake\build\release

(3)在protobuf的解壓目錄創(chuàng)建install文件夾,用于在執(zhí)行cmake install存放生成的文件

(4)進入對應的debug,release文件夾,使用VS CMD運行命令創(chuàng)建對應版本的makefile文件內容,這些文件用于往后的編譯過程
例如:

(Debug)
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=../../../../install ../..
(Release)
cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../../../install ../..

其中-G為指明生成的工程文件,-DCMAKE_BUILD_TYPE為指明生成工程類型,-DCMAKE_INSTALL_PREFIX重定向解壓目錄到上一步創(chuàng)建的文件夾

(5)然后完成之后再對應的debug或release文件夾目錄下VS CMD運行nmake進行編譯

(6)編譯成功之后目錄下會生成各式的文件,其中包含一個protoc.exe的執(zhí)行文件,用作將proto各式文件轉化為cs各式文件

(7)將protoc.exe所在的文件夾路徑添加到環(huán)境變量的Path屬性中方便使用,然后就可以在各處使用protoc進行轉化
例如:

F:\Protobuf\protobuf-3.4.1\cmake\build\debug

(8)編寫簡單proto后綴文件在這里名為Hello.proto,將其生成cs后綴文件Hello.cs
例如:

protoc -I=F:\Protobuf\proto_file --csharp_out=F:\Protobuf\csharp_file Hello.proto

其中-I表示源文件所在文件夾地址,--cssharp_out表示生成平臺為CSharp以及生成的文件存放目標地址,最后Hello.proto為源文件的文件名

(9)將cs文件添加到項目中,發(fā)現(xiàn)缺少google.protobuf一些文件庫引用,VS2017的nuget管理功能可以添加這一缺少的程序包

Paste_Image.png

(10)搜索google.protobuf,下載安裝

Paste_Image.png

(11)protobuf就可以在當前項目內進行使用了

備注

(1)在README中提到的使用cmake install解壓出的文件內容如何關聯(lián)VS項目暫時不明朗,不確定是否VS2017版本原因,使用nuget添加代碼包為從GG的指引中獲得的想法,暫時沒有異常,待以后解決

End


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容