预先构建grpc和find_package [英] Prebuilding grpc and find_package
本文介绍了预先构建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屋!
查看全文