Windows編譯GRPC


 雖然之前有過CMake編譯CTK框架的經驗,但對本人而言,編譯GRPC依舊是非常麻煩的事情,遇到了非常多的問題,包括GIT工程依賴的三方庫、版本問題、依賴三方開發工具、VS版本等等。最大的問題還是來自於坑壁網友的垃圾教程,要么都是直接cpye,要么就不把坑說明白,經過10086次嘗試,終於完成了第一次成功編譯。如下:

 

一、環境准備

要知道為啥安裝這些環境,官方已經給了答案

0、VS

這不用說了吧,本文用的是VS2019

1、Git

用於clone grpc相關源碼到本地,如果不安裝直接從Github上下載也可以不安裝

2、CMake

需要安裝,這種大型通用框架基本都是Cmake編譯,本人安裝的是

 

 

 3、Perl

編譯boringssl時需要,本人安裝的是

 

 

 4、Go

編譯boringssl時需要,本人安裝的是

5、yasm

編譯boringssl時需要【這個很難找到,而且有的地址又說是安裝nasm,我真的醉了】,反正我安裝的是這個

 

 ,可以試試不安裝,看會不會報錯

 

 

根據我的參考的文章,只安裝了VS2019、Perl、Go、CMake,我覺得應該是可以的,本人第一次嘗試編譯grpc就tm被這幾個找不到安裝包的軟件搞得放棄了。

 本人會將相關包放在文章末尾鏈接,需要可自行下載。

 

二、GRPC代碼獲取

github倉庫:https://github.com/grpc/grpc

本次編譯版本:V1.23.0

解決gitbub訪問慢:https://www.cnblogs.com/judes/p/14477855.html

網絡慢真是個大問題,又是讓我某次放棄的原因

1、網址直接下載

打開地址,選擇V1.23.0版本,之前不知如何選版本,每次都下載最新master的,導致錯誤。

 

 

 點擊右邊code,下載ZIP

 

 

 2、git下載

下載指定版本

git clone -b v1.23.0 https://github.com/grpc/grpc.git

這里又是一個坑:網絡很多xx教程都是直接讓你直接clone master的代碼下載,很可能出現問題,強烈建議去git網站手動下載指定版本

 

三、配置GRPC依賴的三方庫

GRPC依賴了很多三方庫,需要全部將其配置好,這些庫在下載下來的GRPC的third_party里,初次下載下來里面全是空文件夾,所以需要配置。

每一個文件夾就是一個三方庫,其對應在git上有自己的倉庫。

 

 

 

這里又有兩個坑:

①、有些教程說只需要下載那幾個常用的,我反正試了沒成功,為了保證萬無一失,建議還是全部都下載,畢竟本文是全部下載后編譯通過的

②、有些教程直接一句話帶過,通過git指令來安裝全部依賴庫

git submodule update  --init

但是我敢說90%以上的普通電腦都不能輕松訪問github,往往都會出錯,寫這些教程的xx真的試過嗎?還是直接自己抄的?xx,大xx!

③、這些依賴庫都是有版本的,我試過全部下載最新的master,編譯出錯,故需要下載與GRPC版本對應的三方庫。

綜上,建議:手動下載全部的三方依賴庫到對應文件夾,但是如何找到對應版本的三方庫呢?

其實Git倉庫已經告訴我們了:

1、進入倉庫,打開third_party文件夾

 

 

 每個三方庫后面都加了一個@xxxxxxx,這個xxxxxx就是對應的其版本。

以第一個abseil-cpp為例,直接點擊進入,就是對應版本的abseil-cpp倉庫,同樣以ZIP下載,放在本地third_party的對應文件夾里面。

 

 

 2、解壓,然后將解壓后的內容拷貝到abseil-cpp根目錄,即:abseil-cpp文件里不能有多級目錄

如下:

 

 同樣的操作,把這些三方依賴庫全部下載解壓

 

 

四、生成解決方案

這里又有兩個版本,用CMake_GUI配置、用CMake命令行,這里用的是命令行

1、在GRPC根目錄下新建文件夾.build

2、打開cmd,進入.build文件夾

3.用CMake命令行生成VS解決方案

cmake .. -G "Visual Studio 16 2019" -A Win32

這里需要注意:其他版本的VS命令行不一樣;

如果是64位則:

cmake .. -G "Visual Studio 16 2019" -A x64

如果是其他版本如VS2015

cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Release     //VS2015 64位 Release
cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=Debug     //VS2015 64位Debug 
cmake .. -G "Visual Studio 14 2015" -DCMAKE_BUILD_TYPE=Debug         //VS2015 32位Debug
....

 

經過漫長等待,在.build文件夾里生成了解決方案【注意這里可能會報很多文件not found,不用管】

 

 五、編譯安裝

1、打開VS2019

2、打開grpc.sln解決方案

3、右鍵ALL_BUILD,選擇生成

這里又有一個坑:這個解決方案里有很多很多的工程,有些xx教程依賴就說“打開解決方案,編譯即可生成依賴庫”,我xxxxx,這樣說誰xx知道編譯哪個工程,真是醉了。

這里我直接說明:是對ALL_BUILD進行編譯,也就是右鍵點擊生成

4、等待許久,提示成功xxx個,失敗0個【也就這也順利,我試了n次其他的都是各種失敗】

這里打印信息被沖掉了,就不貼圖了

5、安裝

選擇INSTALL工程,右鍵生成

 

 經過安裝,成功

 

 在C:\Program Files (x86)\grpc下就能得到需要的GRPC庫,嗚嗚嗚,終於成功了

 

 

參考了10086篇教程,就這哥們的有用,致敬!!

https://blog.csdn.net/weixin_43655901/article/details/118995526

 Grpc官網:https://www.grpc.io/

 

本文相關的安裝包和生成的結果,可直接下載:

需要提前安裝的軟件:https://download.csdn.net/download/m0_53292003/35603214

可直接編譯的GRPC包:https://download.csdn.net/download/m0_53292003/35604690


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM