在Windows上編譯GRPCPP SDK

2021-10-05 22:27:07 字數 3025 閱讀 4479

install visual studio 2015 or 2017 (visual c++ compiler will be used)

(optional) install git。如果不借助梯子,git clone獲取grpc專案超高概率失敗

install cmake。

install nasm and add it to path (choco install nasm) - required by boringssl。安裝好後,主要將其安裝目錄新增到path中

.gitmodules裡面有grpc依賴的模組的資訊,包括版本與獲取方法。但是不建議通過該模組中記錄的資訊來獲取子模組,因為windows版grpcpp sdk並不需要裡面記錄的所有子模組,而且

windows版grpcpp sdk需要的子模組如下:

zipabseil-cpp

boringssl-with-bazel

cares

1. 進入grcp專案的根目錄

2. md .build

3. pushd .build

# 第4步將會在.build生成vs2015專案,之後可以選擇用vs2015生成sdk,也可以繼續用cmake 生成sdk

4. cmake .. -g "visual studio 14 2015" -wno-dev -dcmake_install_path="grpc sdk安裝路徑" -dgrpc_install=on

5. cmake --build . --config [release|debug]

6. cmake --install . --config [release|debug]

安裝grpcpp sdk到指定目錄的好處在後面會提到。

1. 進入example/cpp/helloworld

2. md .build

3. cd .build

4. cmake .. -g "visual studio 14 2015" -wno-dev -dcmake_prefix_path="grpc sdk安裝路徑"

5. cmake --build . --config [release|debug]

因為我們在前面將grpc sdk安裝到了指定目錄,因此在第4步我們可以通過cmake_prefix_path來讓camke找到protoc工具、相關標頭檔案與庫。雖然不安裝grpc sdk也同樣可以構建專案,但要麻煩些。

1. 進入專案根目錄

2. 定義proto檔案

3. 將helloworld目錄下的cmakelists.txt拷貝到當前目錄

4. 修改cmakelists.txt

a. 設定專案名稱

project(helloworld c cxx)

b. 設定proto檔案

get_filename_component(hw_proto "../../protos/helloworld.proto" absolute)

get_filename_component(hw_proto_path "$" path)

c. 以下設定非必須,只是用於protoc生成檔案時的提示資訊

set(hw_proto_srcs "$/helloworld.pb.cc")

set(hw_proto_hdrs "$/helloworld.pb.h")

set(hw_grpc_srcs "$/helloworld.grpc.pb.cc")

set(hw_grpc_hdrs "$/helloworld.grpc.pb.h")

d. 新增工程。

foreach(_target

greeter_client greeter_server

greeter_async_client greeter_async_client2 greeter_async_server)

add_executable($ "$.cc"$$)

target_link_libraries($$$

$)endforeach()

5. md .build

6. pushd .build

7. cmake .. -g "visual studio 14 2015" -wno-dev -dcmake_prefix_path="grpc sdk安裝路徑"

8. 使用vs2015開啟專案,執行生成命令就可以將proto解釋成相應的**

可以通過檢視helloworld專案的屬性來將grpc新增到現有專案中。

在include路徑中新增$/include

新增依賴庫

因為依賴的庫比較多,此處就不羅列出來了。

編譯proto檔案。

$ protoc -i ../../protos --grpc_out=. --plugin=protoc-gen-grpc=`which grpc_cpp_plugin` ../../protos/route_guide.proto

$ protoc -i ../../protos --cpp_out=. ../../protos/route_guide.proto

將生成的檔案新增到工程中

/blob/master/building.md

dbus在windows上的編譯

author kagula date 2015 09 16 1 expat win32bin 2.1.0.exe 2 dbus 1.6.8.tar.gz 準備 1 先安裝expat win32bin 2.1.0.exe,我這裡的安裝路徑是 d expat 2.1.0 方式一 1 參考資料一,在 ad...

在windows上編譯apache模組

工作需要重新編譯apache自帶的proxy模組,花了一天時間終於搞定 2.配置apxs 1 安裝apxs 安裝包apxs win32 2 安裝strawberry perl 安裝包strawberry perl 5.16.3.1 32bit.msi 3 進入dos命令提示符,轉到apxs安裝目錄下...

zlib在windows上的編譯

編譯生成的庫為 zlibstatdebug zlibstat.lib 和zlibstatrelease zlibstat.lib 寫了乙個例子想測試一下,結果出現鏈結錯誤 1 unzip.obj error lnk2019 無法解析的外部符號 inflateinit2 該符號在函式 unzopenc...