CMake安裝grpc生成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:
如果您覺得我的文章對您有幫助,可以掃碼領取下紅包或掃碼支持(隨意多少,一分錢都是愛),謝謝!

支付寶紅包 支付寶 微信


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM