尝试使用 Visual Studio 2017 创建 gRPC 项目但遇到 E0145

Posted

技术标签:

【中文标题】尝试使用 Visual Studio 2017 创建 gRPC 项目但遇到 E0145【英文标题】:Trying to create a gRPC project using Visual Studio 2017 but running into E0145 【发布时间】:2020-05-11 15:54:08 【问题描述】:

我在 Linux 上成功学习了本教程:https://grpc.io/docs/quickstart/cpp/ (gRPC 版本:v1.28.1) 然后我改了helloworld.proto文件,重新生成了grpc.pb.cc、pb.cc、grpc.pb.h、pb.h文件。 然后我将这些文件复制到装有 Visual Studio 2017 的 Windows 10 机器上。 我使用 vcpkg 安装 grpc。 (天哪,这一步花了 45 分钟……) 我启动了一个新的控制台项目并添加了 helloworld 示例代码。 该项目似乎神奇地找到了 grpc 包含文件。 但是当我尝试编译大多数为 E0145 的项目时,IDE 出现 175 个错误。 例如: E0145 成员“google::protobuf::Any::kIndexInFileMessages”可能未初始化。

我尝试关闭预编译头文件。但无济于事。

有人知道我怎样才能让它运行吗?

【问题讨论】:

请显示您的编译和链接器配置。 【参考方案1】:

你可以试试这个链接:

    Answer by "developercommunity" form

    “已发布此问题的修复程序!请从 https://visualstudio.microsoft.com/downloads/ 安装 Visual Studio 2019 RC。感谢您提供有助于改进产品的宝贵反馈。”

.

    Answer by "***" form

    “我通过#define BOOST_FILESYSTEM_SOURCE 在我的应用程序中修复了前三个错误(E0145)。最后一个错误(E2512)仍然存在。它出现在以下代码中:#define BOOST_SYSTEM_REQUIRE_CONST_INIT #if defined(__has_cpp_attribute) #if __has_cpp_attribute(clang::require_constant_initialization) # undef BOOST_SYSTEM_REQUIRE_CONST_INIT #define BOOST_SYSTEM_REQUIRE_CONST_INIT [[clang::require_constant_initialization]] #endif #endif – pras123"

【讨论】:

谢谢伙计,你的回答中有很多很好的信息!感谢您抽出宝贵时间!

以上是关于尝试使用 Visual Studio 2017 创建 gRPC 项目但遇到 E0145的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Studio 2017 发布 C++ 代码 [重复]

如何使用Visual Studio 2013或Visual Studio 2017设置TFS 2013

Visual Studio 2017 - 无法安装 WDK 扩展

使用Visual Studio 2017安装NUnit

如何正确安装 libcurl 以在 Visual Studio 2017 中使用?

当尝试使用Visual Studio 2017构建Boost库1.69.0时,如何诊断或解决错误“rule”package.paths“unknown”?