预先构建grpc和find_package [英] Prebuilding grpc and find_package

查看:181
本文介绍了预先构建grpc和find_package的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将我的应用程序与预构建的gRPC 1.30链接.

I'd like to link my application with a prebuilt gRPC 1.30.

我想要的目录结构:

- project root
  - external
    + gRPC
  - src
    ... my source code here ...

我已经构建了gRPC:

I've built gRPC:

git clone --recurse-submodules -b v1.30.0 https://github.com/grpc/grpc
cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DCMAKE_INSTALL_PREFIX="D:/grpc" -A x64 ..
cmake --build . --target install --config Release

D:/grpc 中生成的文件的最终结构很奇怪...最顶层的cmake文件夹包含protobuf-config.cmake,而grpc的文件夹在D:/grpc/lib/cmake中/grpc.但是我并不在乎,只要它能起作用.

The final structure of files produced in D:/grpc is weird... the topmost cmake folder contains protobuf-config.cmake and the grpc's one is in D:/grpc/lib/cmake/grpc. But I don't really care as long as it works.

这是在我项目的CMakeLists.txt中.

This is in my project's CMakeLists.txt.

set(CMAKE_PREFIX_PATH ${EXTERNAL_DIRECTORY}
    ${EXTERNAL_DIRECTORY}/grpc/ 
    ${EXTERNAL_DIRECTORY}/grpc/cmake/ 
    ${CMAKE_PREFIX_PATH})

find_package(Protobuf CONFIG REQUIRED)
find_package(gRPC CONFIG REQUIRED)

add_executable(test main.cpp)
target_link_libraries(test PRIVATE grpc::grpc++)

最后,这是我尝试构建它时遇到的错误:

And finally, this is the error that I'm getting when I try to build it:

  Target "test" links to target "Threads::Threads" but the target was
  not found.  Perhaps a find_package() call is missing for an IMPORTED
  target, or an ALIAS target is missing?

我被困在这里.

推荐答案

我只是添加:

find_package(Threads REQUIRED)

这篇关于预先构建grpc和find_package的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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