【问题标题】:How to get gRPC / protobuf version programmatically?如何以编程方式获取 gRPC / protobuf 版本?
【发布时间】:2020-07-30 13:43:50
【问题描述】:

是否有知道 gRPC/protobuf 版本或 git commit hash 的 API?我们希望将这些包含在我们的 C++ 应用程序的--version 信息中。

文件gRPC-Core.podspecgRPC-C++.podspecProtobuf-C++.podspec等。确实有这些信息;想知道是否可以在无需解析这些文件的情况下提取相同的内容。

【问题讨论】:

    标签: c++ grpc protobuf-c


    【解决方案1】:

    gRPC 在其 API 中公开版本:

    const GRPCAPI char* grpc_version_string ( void )

    对于 C++ 实现,<grpcpp/grpcpp.h> 标头中似乎有以下方法:

    std::string grpc::Version()

    对于 protobuf,宏 GOOGLE_PROTOBUF_VERSION 是其版本的整数值,可以使用以下 API 转换为字符串:

    std::string google::protobuf::internal::VersionString(int version)

    【讨论】:

    • 谢谢,但我认为这个 API 提供了 gRPC 核心的版本字符串,它来自 src/core/lib/surface/version.cc: const char* grpc_version_string(void) { return "10.0.0"; } 我正在寻找 gRPC 的 c++ 库的版本,例如对于github.com/grpc/grpc/releases/tag/v1.30.2,我希望这是 1.30.2
    • 在浏览完模板后,我添加了<grpcpp/grpcpp.h> 公开的版本,这似乎就是您要查找的版本。
    猜你喜欢
    • 2010-09-08
    • 2021-08-20
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-19
    • 2023-03-17
    • 1970-01-01
    相关资源
    最近更新 更多