在CMake中添加gRPC :: grpc ++库依赖关系后,libprotocd.lib的路径异常 [英] Unexpected path to libprotocd.lib after add gRPC::grpc++ library dependence in CMake

查看:602
本文介绍了在CMake中添加gRPC :: grpc ++库依赖关系后,libprotocd.lib的路径异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个由柯南编译的gRPC 1.23.0(所有依赖关系也由柯南解决). 我有一个CMake项目,该项目使用grpc库:

I have a gRPC 1.23.0 compiled by conan(and all dependencies also resolved by conan). And I have a CMake project, that use grpc library:

set (LIB_DEPS
  protobuf::libprotobuf
  gRPC::grpc++
)
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIB_DEPS})

当我从Linker - Input - Addition Dependencies属性中的CMakeLists.txt生成VS项目时,我有下一个值:

When I generate a VS project from this CMakeLists.txt in Linker - Input - Addition Dependencies property, I have there next value:

C:\.conan\data\protobuf\3.9.1\kpa_conan\stable\package\b786e9ece960c3a76378ca4d5b0d0e922f4cedc1\lib\libprotobufd.lib <-- (1)
C:\.conan\data\grpc\1.23.0\kpa_conan\stable\package\d85cccdf40588ac852bd1445d45838487543194f\lib\grpc++.lib
libprotocd.lib   <-- (2)
libprotobufd.lib  <-- (3)
C:\.conan\data\grpc\1.23.0\kpa_conan\stable\package\d85cccdf40588ac852bd1445d45838487543194f\lib\grpc.lib
C:\.conan\data\grpc\1.23.0\kpa_conan\stable\package\d85cccdf40588ac852bd1445d45838487543194f\lib\gpr.lib
C:\.conan\data\c-ares\1.15.0\kpa_conan\stable\package\b786e9ece960c3a76378ca4d5b0d0e922f4cedc1\lib\cares.lib
C:\.conan\data\grpc\1.23.0\kpa_conan\stable\package\d85cccdf40588ac852bd1445d45838487543194f\lib\address_sorting.lib
wsock32.lib
kernel32.lib

(1)-我在CMakeLists.txt

(2),(3)-意外路径和无效路径,由gRPC::grpc++CMakeLists.txt中添加. 如果我将gRPC::grpc++更改为gRPC::grpc,第(2)和(3)行将消失,但通往grpc++.lib的路径也将消失,但我需要它.

(2),(3) - unexpected and invalid path, that added by gRPC::grpc++ in CMakeLists.txt. If I change gRPC::grpc++ to gRPC::grpc, lines (2) and (3) will disappear, but path to grpc++.lib will disappear too, but I need it.

如何避免通往libprotocd.liblibprotobufd.lib的奇怪的无效路径?

How to avoid this strange invalid path to libprotocd.lib and libprotobufd.lib?

推荐答案

要针对grpc目标正确链接,您可以使用:

To properly link against grpc targets you can use:

target_link_libraries(${PROJECT_NAME} PUBLIC CONAN_PKG::grpc)

其中应包含所有必需的内容. 有关此方法的更多详细信息,请参见: https://docs.conan.io/en/latest/integrations/build_system/cmake/cmake_generator.html#targets-approach

This should contain everything required. More details on this approach here: https://docs.conan.io/en/latest/integrations/build_system/cmake/cmake_generator.html#targets-approach

这篇关于在CMake中添加gRPC :: grpc ++库依赖关系后,libprotocd.lib的路径异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆