柯南和gRPC:对各种`gpr_`符号的未定义引用

时间:2019-10-16 07:59:11

标签: c++ grpc conan

这是在我的项目中将gRPC与Conan一起使用的问题。 简而言之,我有一个基于gRPC的项目,而我的依赖项是:

    requires = (
        "predictions-algorithms/15.16.51@navassist/testing",
        "grpc/1.20.0@inexorgame/stable",
        "protobuf/3.6.1@bincrafters/stable",
        "protoc_installer/3.6.1@bincrafters/stable"
    )

但是,在项目链接过程结束时,会出现一堆消息,提示对libgrpc.a中各种gpr_ *符号的未定义引用。

我用readelf -Ws my/package/path/to/libgrpc.a | grep gpr_(some symbol)进行了检查,可以肯定的是,其中所有这些符号都未定义。

我也在上面使用的gRPC软件包的repository上打开了这个问题。

不知道下一步该怎么做...欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

所以,问题是我要针对libgrpc进行链接,而不是针对其依赖项进行链接!

最终,我修改了CMakeLists.txt使其看起来像(不要问我为什么从一开始就不喜欢它...):

target_link_libraries(${PROJECT_NAME}
    ${CONAN_LIBS}
)

然后成功构建。