欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CMake安装grpc生成gRPCTargets.cmake文件

程序员文章站 2022-07-05 15:28:33
以下是安装语句: 然而编写依赖 的程序,发现无法调用 的`CMake`文件,错误提示如下所示: 在 的`issue CMake`安装时,如果第三方依赖在未指明的情况下,默认均通过 源码安装 ,如果无法通过 源码安装 ,则无法生成 gRPCTargets.cmake 文件): 因此需要指定第三方依赖是 ......

以下是安装语句:

cd grpc_folder
git submodule update --init
cmake ..
make -j 4
sudo make install

然而编写依赖grpc的程序,发现无法调用grpccmake文件,错误提示如下所示:

  include could not find load file:

    /usr/local/lib/cmake/grpc/grpctargets.cmake

grpcissue列表中,寻找到解决方案(cmake安装时,如果第三方依赖在未指明的情况下,默认均通过源码安装,如果无法通过源码安装,则无法生成grpctargets.cmake文件):
因此需要指定第三方依赖是通过源码安装,还是已经通过包管理器安装完毕.
因为已经安装了zlibprotobuf以及cares,因此修改cmake ..为:

cmake  -dgrpc_install=on -dgrpc_zlib_provider=package -dgrpc_cares_provider=package -dgrpc_protobuf_provider=package -dgrpc_ssl_provider=package ..

依赖grpc的工程可以使用如下语句添加grpc依赖:

if (with_grpc)
    find_package(grpc config)
    # first attempt to set up grpc via cmake; but if cmake config files aren't
    # available, fallback to pkg-config.
    if (grpc_found)
        set(grpc_cpp_plugin $<target_file:grpc::grpc_cpp_plugin>)
        list(append lightstep_link_libraries grpc::grpc++)
        include_directories(system
                $<target_property:grpc::grpc++,interface_include_directories>)
    else()
        message("falling back to finding grpc with pkg-config")
        find_program(grpc_cpp_plugin grpc_cpp_plugin)
        if (not grpc_cpp_plugin)
            message(fatal_error "grpc_cpp_plugin not found!")
        endif()
        find_package(pkgconfig required)
        pkg_search_module(grpc required grpc)
        pkg_search_module(grpcpp required grpc++)
        list(append lightstep_link_libraries ${grpcpp_ldflags} ${grpc_ldflags})
        include_directories(system ${grpc_include_dirs} ${grpcpp_include_dirs})
    endif()
endif()

ps:
如果您觉得我的文章对您有帮助,可以扫码领取下红包,谢谢!
CMake安装grpc生成gRPCTargets.cmake文件