..

grpcTargets.cmake 找不到了

背景

有一套代码是基于 cmake 构建的, 需要对一些地方进行重构一下,于是在新机器上搭建一个编译环境。
直接 cmake ..,出现了该错误。

include could not find load file:
/usr/local/lib/cmake/grpc/gRPCTargets.cmake

如果去 /usr/local/lib/cmake/grpc/ 目录下查看, 确实没有 gRPCTargets.cmake

怎么办

刚开始找到 find(gprc) 的 cmake 文件,因为之前已经安装过 grpc c++ 版本的,看了一下 cmake 文件的逻辑,把一些代码注释掉,试着编译,肯定是不通过的。。。
于是 Google 了一下, 问题找到了。 1

解决

很早之前安装的grpc,至于怎么安装的我也记不起来了。 但是看 issue 上的解释,需要给他强制指定一下才行,解决如下:

cd grpc
mkdir my_build && cd my_build
cmake -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF -DgRPC_PROTOBUF_PROVIDER=package -DgRPC_ZLIB_PROVIDER=package -DgRPC_CARES_PROVIDER=package -DgRPC_SSL_PROVIDER=package -DCMAKE_BUILD_TYPE=Release ../.. 
make
sudo make install

此时再看,gRPCTargets.cmake 已经存在了。

再去编译工程, success.

PS.
关于 grpc 的源码安装步骤, 看这里。2