以下是安裝語句: 然而編寫依賴 的程式,發現無法調用 的`CMake`文件,錯誤提示如下所示: 在 的`issue CMake`安裝時,如果第三方依賴在未指明的情況下,預設均通過 源碼安裝 ,如果無法通過 源碼安裝 ,則無法生成 gRPCTargets.cmake 文件): 因此需要指定第三方依賴是 ...
以下是安裝語句:
cd grpc_folder
git submodule update --init
cmake ..
make -j 4
sudo make install
然而編寫依賴gRPC
的程式,發現無法調用gRPC
的CMake
文件,錯誤提示如下所示:
include could not find load file:
/usr/local/lib/cmake/grpc/gRPCTargets.cmake
在gRPC
的issue
列表中,尋找到解決方案(CMake
安裝時,如果第三方依賴在未指明的情況下,預設均通過源碼安裝,如果無法通過源碼安裝,則無法生成gRPCTargets.cmake文件):
因此需要指定第三方依賴是通過源碼安裝,還是已經通過包管理器安裝完畢.
因為已經安裝了zlib
,protobuf
以及cares
,因此修改cmake ..
為:
cmake -DgRPC_INSTALL=ON -DgRPC_ZLIB_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_SSL_PROVIDER=package ..
依賴gRPC
的工程可以使用如下語句添加gRPC
依賴:
if (WITH_GRPC)
find_package(gRPC CONFIG)
# First attempt to set up gRPC via cmake; but if cmake config files aren't
# available, fallback to pkg-config.
if (gRPC_FOUND)
set(GRPC_CPP_PLUGIN $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
list(APPEND LIGHTSTEP_LINK_LIBRARIES gRPC::grpc++)
include_directories(SYSTEM
$<TARGET_PROPERTY:gRPC::grpc++,INTERFACE_INCLUDE_DIRECTORIES>)
else()
message("Falling back to finding gRPC with pkg-config")
find_program(GRPC_CPP_PLUGIN grpc_cpp_plugin)
if (NOT GRPC_CPP_PLUGIN)
message(FATAL_ERROR "grpc_cpp_plugin not found!")
endif()
find_package(PkgConfig REQUIRED)
pkg_search_module(GRPC REQUIRED grpc)
pkg_search_module(GRPCPP REQUIRED grpc++)
list(APPEND LIGHTSTEP_LINK_LIBRARIES ${GRPCPP_LDFLAGS} ${GRPC_LDFLAGS})
include_directories(SYSTEM ${GRPC_INCLUDE_DIRS} ${GRPCPP_INCLUDE_DIRS})
endif()
endif()
PS:
如果您覺得我的文章對您有幫助,可以掃碼領取下紅包,謝謝!