visual-studio - 在 CMake 中添加 gRPC::grpc++ 库依赖后,libprotocd.lib 的意外路径
问题描述
我有一个由柯南编译的 gRPC 1.23.0(所有依赖项也由柯南解决)。我有一个使用 grpc 库的 CMake 项目:
set (LIB_DEPS
protobuf::libprotobuf
gRPC::grpc++
)
target_link_libraries(${PROJECT_NAME} PUBLIC ${LIB_DEPS})
CMakeLists.txt
当我从这个属性中生成一个 VS 项目时Linker - Input - Addition Dependencies
,我有下一个值:
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++
in添加CMakeLists.txt
。如果我更改gRPC::grpc++
为gRPC::grpc
,第 (2) 行和第 (3) 行将消失,但路径grpc++.lib
也会消失,但我需要它。
如何避免这种奇怪的无效路径libprotocd.lib
and libprotobufd.lib
?
解决方案
要正确链接到 grpc 目标,您可以使用:
target_link_libraries(${PROJECT_NAME} PUBLIC CONAN_PKG::grpc)
这应该包含所需的一切。此处有关此方法的更多详细信息:https ://docs.conan.io/en/latest/integrations/build_system/cmake/cmake_generator.html#targets-approach
推荐阅读
- javascript - React Native - 使用身份验证获取
- hyperledger-fabric - 认可政策
- c - 冗余 IRQ 清除挂起操作
- pentaho - 如何在 pentaho 报表设计器工具中动态添加图像路径?
- node.js - MongoDB删除用户时删除用户创建的所有文档
- css - 使用模板的 PrimeNG TreeNodes 的条件样式
- mongodb - MongoDB 散列或 b 树中的 _id 索引的类型是什么?
- sql - 如何在linq中计算多列数据
- networking - 在 OMNeT++ 中的节点之间交换数据
- php - 从数组 PHP 中删除相邻的重复项会忽略值为 0 的第一个元素