为什么没有针对grpc的预编译c ++库

时间:2019-06-27 15:40:46

标签: c++ grpc

我正在尝试将grpc集成到C ++项目中。但是我发现唯一的方法是下载所有源代码并自行编译。

有什么方法可以获取预编译的.so / .a文件(可以链接到该文件)和grpc_cpp_plugin(适用于Linux)吗?

或者c ++不可能这样做,为什么?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找预编译的gRPC库,则应使用vcpkg。 我还试图交叉编译gRPC,而不构建库本身。使用vcpkg,我取得了很好的成绩。 只需执行几步即可设置:

  1. 从GitHub中拉出vcpkg并按照说明进行设置
  2. 使用“ ./ vcpkg install grpc
  3. 安装grpc。
  4. CMakeLists.txt 中的CMAKE_TOOLCHAIN_FILE设置为vcpkg文件夹中的“ vcpkg.cmake ”文件
  5. 在您的 CMakeLists.txt
  6. 中添加gRPC

这是我的CMakeLists.txt:

cmake_minimum_required(VERSION 3.1)

if(DEFINED ENV{VCPKG_ROOT})
    set(CMAKE_TOOLCHAIN_FILE $ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake)
else()
    set(CMAKE_TOOLCHAIN_FILE "/path_to_vcpkg/scripts/buildsystems/vcpkg.cmake")
endif()

project(Foo)

find_package(gRPC CONFIG REQUIRED)

...

add_executable(${PROJECT_NAME} ${Bar})

target_link_libraries(${PROJECT_NAME} PRIVATE gRPC::gpr gRPC::grpc gRPC::grpc++ gRPC::grpc_cronet)

在文件夹 path_to_vcpkg / packages / grpc_x64-PLATFORM / tools / grpc 中,您会找到适用于您平台的所有预编译grpc插件(也 grpc_cpp_plugin )。

>

优点:

  • 易于设置
  • vcpkg可用于所有常见平台
  • 如果不再需要软件包,则只​​需删除“ path_to_vcpkg / packages ”中的文件夹
  • 包括您需要的所有gRPC工具

缺点:

  • 安装某些软件包后,“ path_to_vcpkg / packages ”文件夹变得很大

答案 1 :(得分:0)

  

有什么方法可以获取预编译的.so / .a文件(可以链接到该文件)和grpc_cpp_plugin(适用于Linux)吗?

要回答此问题,gRPC C ++插件当前需要手动构建和安装,如下所示:https://grpc.io/blog/installation/

这意味着当前没有预编译的gRPC C ++插件。