当我尝试将gRPC构建为一个静态库时,一切工作正常。然而,当将它构建为一个共享库时,我遇到了链接问题。
option(BUILD_SHARED_LIBS "build shared libraries" ON)
include(FetchContent)
FetchContent_Declare(
grpc
GIT_REPOSITORY https://github.com/grpc/grpc.git
GIT_TAG v1.49.1)
set(FETCHCONTENT_QUIET OFF)
FetchContent_MakeAvailable(grpc)
protoc-3.21.6.0: error while loading shared libraries: libprotocd.so.32: cannot open shared object file: No such file or directory
通过grpc内的add_custom_command
执行脚本时发生此错误
1条答案
按热度按时间rjee0c151#
我相信错误信息非常清楚:
要构建gRPC的共享库,您还需要协议缓冲区编译器的共享库,即
protoc
。我将从构建protoc
的共享库开始。如果你确定你有它们,那么我会检查CMake是否能正确地找到它们(通过检查它们是否在标准系统路径中,或者通过使用
CMAKE_MODULE_PATH
附加. cmake文件的位置)希望有帮助。