protobuf應用到vs2013中

由於項目需要用到protobuf——谷歌protobuf的是google的一個強大的網絡傳輸協議,protocol buffers 是一種語言無關、平臺無關、可擴展的序列化結構數據的方法,它可用於(數據)通信協議、數據存儲等。考慮到很多人使用vs的編譯工具,描述將protobuf添加到vs的項目中。

1.準備工作

在使用之前需要下載protobuf源碼,以及編譯工具,這裏通常採用cmake來編譯,通過cmake來編譯可以使用命令提示符來編譯,也可以使用cmake的可視化工具進行。在編譯前提前下載好相關的源碼:
1.下載 protocolbuffer源碼, https://github.com/google/protobuf/releases
並解壓;
protobuf
2.安裝cmake工具和vs工具,這是我使用的是vs2013;在安裝過程中記得選擇“寫入環境變量”,或者安裝過後自行在環境變量裏添加Cmake目錄下bin所在路徑,方便在命令行使用Cmake 。安裝完成,打開cmd,輸入cmake --help,如下證明安裝成功。
cmake

特別注意:根據你的需求以及使用vs版本下載相應protobuf版本的源碼,並不是最新的就適合,因爲vs2013不支持c++11的特性,所以,下載protobuf的時候,最好下載3.1之前的版本,這裏我下載的是protobuf-cpp-3.1.0,如果你使用vs2015及以上的版本可以下載更高的版本需要。否則編譯會出問題;

2. 編譯protobuf源碼

1.首先解壓protobuf-cpp-3.1.0壓縮包,在E:\protobuf-cpp-3.1.0目錄下,新建一個install文件夾,編譯之後的include和lib文件會放在裏面。(其實不自己創建的話,後面會自己生成。)如下:
在這裏插入圖片描述
2.接下來,打開,VS2013開發人員命令提示(點擊,開始->所有程序->Visual Studio 2013->Visual Studio Tools,進入如下界面)
在這裏插入圖片描述
在這裏插入圖片描述
3. 進入protobuf目錄下的cmake目錄,操作如下圖所示:
在這裏插入圖片描述
在cmake目錄下創建build目錄,並且進入
此外,在下載的protobuf目錄下,找到cmake文件夾,新建build文件夾,如下圖所示:

mkdir build & cd build

build
4.創建release和debug版本的目錄。(注意,二者選其一,根據你的項目需求選擇,一定要一一對應!這裏把兩個版本相關的命令都寫上,但是本文後面的示例,是按照debug版本使用的。)

4.1.release版本:

1)創建release目錄並且進入:

mkdir release & cd release

2)生成Makefile文件:

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

3)nmake進行編譯:

nmake

4)安裝include頭文件,lib庫文件等,會放在一開始創建的install文件夾中:

nmake install 

4.2. debug版本:

1)創建debug目錄並且進入:

mkdir debug & cd debug 

2)生成Makefile文件:

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

3)nmake進行編譯:

nmake

4)安裝include頭文件,lib庫文件等,會放在一開始創建的install文件夾中:

nmake install 

至此,debug和release版本都編譯成功了,以debug爲例,在文件夾下,會生成如下文件:
在這裏插入圖片描述
在install文件夾下,會生成需要的頭文件和庫文件如下:
在這裏插入圖片描述

3.protobuf在vs2013中的使用

打開vs2013,新建一個空項目,進行如下配置:
1)進入項目屬性頁->配置屬性->鏈接器->常規->附加庫目錄,加入之前debug生成的目錄(因爲本文測試用例以debug爲例,所以選擇debug目錄)如下:
在這裏插入圖片描述
2)進入項目屬性頁->配置屬性->鏈接器->輸入->附加依賴項,加入依賴項如下

libprotobufd.lib
libprotocd.lib

在這裏插入圖片描述
3)進入項目屬性頁->配置屬性->C/C+±>代碼生成->運行庫,選擇多線程(/MT)
在這裏插入圖片描述
4)進入項目屬性頁->配置屬性->C/C+±>常規->附加包含目錄,加入先前在install文件夾下生成的頭文件include的目錄,如下:(這個是針對一些沒有包含庫文件的錯誤!!)
在這裏插入圖片描述
5)進入項目屬性頁->配置屬性->鏈接器->輸入->忽略特定默認庫,加入LIBCMT.lib(這個是針對,LIBCMT重定義的錯誤!!!)
在這裏插入圖片描述
配置完成之後,就可以在項目的頭文件中定義自己需要的數據協議並使用了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章