gpt4 book ai didi

c++ - CMake 无法找到 gRPC 库,即使它们已安装 (mac)

转载 作者:行者123 更新时间:2023-12-01 14:58:44 41 4
gpt4 key购买 nike

我正在尝试使用 gRPC 库,但我一直收到错误消息,告诉我它找不到 .cmake 文件,或者我收到链接器错误,这可能是由于我的 CMakeLists.txt。在 examples I'm following他们将 cmake 中的库简称为 gRPC,我也尝试了关键字 grpc_cpp_plugin,但似乎都不起作用。

对于上下文,我使用的是 macOS Mojave,并且我已经使用 Homebrew 软件安装了 gRPC 库。

Homebrew 在 /usr/local/Cellar/grpc/1.22.0 中安装了 gRPC 库。

我在这里使用了一个适用于另一个项目的 cmake 文件,但是我已经添加了 protobuf 和 gRPC 库,添加它们之后出现错误。同样,一些代码是从上面的链接中借用的(特别是 gRPC 文件所在位置的名称)。

我的 CMakeLists.txt 文件

cmake_minimum_required( VERSION 2.8 )
project( gRPC_server )

# setup opencv
find_package( OpenCV REQUIRED )

# SETUP PROTOBUF
set(protobuf_MODULE_COMPATIBLE TRUE)
find_package( Protobuf REQUIRED )
set(_PROTOBUF_LIBPROTOBUF protobuf::libprotobuf)

# SETUP GRPC
find_package( gRPC REQUIRED )
set(_GRPC_GRPCPP_UNSECURE gRPC::grpc++_unsecure)

INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIR})

# mostly just to set it to the correct compiler
SET(CMAKE_CXX_FLAGS "-std=c++0x -Wall -g -Werror")

add_executable( server server.cpp compiled/image.grpc.pb.cc compiled/image.pb.cc )
target_link_libraries( server ${OpenCV_LIBS} ${_GRPC_GRPCPP_UNSECURE} ${_PROTOBUF_LIBPROTOBUF} )

add_executable( client client.cpp compiled/image.grpc.pb.cc compiled/image.pb.cc )
target_link_libraries( client ${OpenCV_LIBS} ${_GRPC_GRPCPP_UNSECURE} ${_PROTOBUF_LIBPROTOBUF} )

特别奇怪的是错误信息毫无意义

-- Found OpenCV: /opt/local (found version "3.4.3") 
-- Found Protobuf: /usr/local/lib/libprotobuf.a (found version "3.7.0")
CMake Error at CMakeLists.txt:14 (find_package):
By not providing "FindgRPC.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "gRPC", but
CMake did not find one.

Could not find a package configuration file provided by "gRPC" with any of
the following names:

gRPCConfig.cmake
grpc-config.cmake

Add the installation prefix of "gRPC" to CMAKE_PREFIX_PATH or set
"gRPC_DIR" to a directory containing one of the above files. If "gRPC"
provides a separate development package or SDK, be sure it has been
installed.

如果我注释掉 gRPC 内容,我会收到链接器错误。

感谢任何帮助,谢谢!

最佳答案

你必须通过 pkg-config 找到 gRPC。它已在 gRPC C++ QuickStart 中说明.

示例 cmake 代码:

find_package(PkgConfig REQUIRED)
pkg_search_module(GRPC REQUIRED grpc)
pkg_search_module(GRPCPP REQUIRED grpc++>=1.22.0)

我自己用那些 tensorflow-serving-client repo 。

关于c++ - CMake 无法找到 gRPC 库,即使它们已安装 (mac),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57355861/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com