这是在我的项目中将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上打开了这个问题。
不知道下一步该怎么做...欢迎任何帮助。
答案 0 :(得分:0)
所以,问题是我要针对libgrpc进行链接,而不是针对其依赖项进行链接!
最终,我修改了CMakeLists.txt
使其看起来像(不要问我为什么从一开始就不喜欢它...):
target_link_libraries(${PROJECT_NAME}
${CONAN_LIBS}
)
然后成功构建。