当前位置: 首页 > 知识库问答 >
问题:

boost::future不编译

法烨烨
2023-03-14

我在尝试编译使用boost库的项目时遇到问题。

我得到的错误是:

1>f:\server\packages\boost.1.60.0.0\lib\native\include\boost\thread\future.hpp(156): error C3646: 'policy_': unknown override specifier
1>f:\server\packages\boost.1.60.0.0\lib\native\include\boost\thread\future.hpp(156): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>f:\server\packages\boost.1.60.0.0\lib\native\include\boost\thread\future.hpp(396): error C2061: syntax error: identifier 'wait_until'
1>f:\server\packages\boost.1.60.0.0\lib\native\include\boost\thread\future.hpp(414): error C2334: unexpected token(s) preceding '{'; skipping apparent function body
1>f:\server\packages\boost.1.60.0.0\lib\native\include\boost\thread\future.hpp(421): error C2988: unrecognizable template declaration/definition
1>f:\server\packages\boost.1.60.0.0\lib\native\include\boost\thread\future.hpp(421): error C2059: syntax error: 'this'

还有更多关于未来的编译错误。水电站。。。。。

我试图重新安装Windows SDK和Visual Studhtml" target="_blank">io,但这两种情况都没有帮助。

我想它可能是关于错误的包含路径,所以我检查项目属性中的宏。我发现在'包含目录'中我有$(VC_IncludePath);$(WindowsSDK_IncludePath);

评估为:

C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\include C:\Program Files(x86)\Microsoft Visual Studio 14.0\VC\atlmfc\include C:\Program Files(x86)\Windows Kits\10\include\10.0.10240.0\ucrt C:\Program Files(x86)\Windows Kits\10\include\10.0.10240.0\Windows Kits\共享C:\Program Files(x86)\Windows Kits\10\include\10.0.10240.0\winrtC:\Program Files(x86)\Windows Kits\NETFXSDK\4.6\Include\um

在上面的第一个路径中,我有文件“未来”...

我正在使用:

  • Visual studio 15

应该注意的是,同一个项目正在编译给我的队友,所以它可能与设置或包含有关,但与代码本身无关。

共有1个答案

席兴朝
2023-03-14

所以问题是我电脑上的boost软件包被破坏了。

在项目上重新安装它(通过visual)没有帮助,因为它只是从我的计算机上的缓存(C:\Users\ofir\.nuget\packages\boost)中获取,而不是真正从internet下载。我的问题是缓存被破坏了——由于某种原因,文件没有正确下载。

解决方案是更新我电脑上的软件包:

为此,我删除了文件夹C:\Users\ofir\。nuget\packages\boost\1.60.0并重建了我的项目——它重新下载了包。

您还可以使用命令-https://docs.microsoft.com/en-us/nuget/consume-packages/reinstalling-and-updating-packages

 类似资料:
  • 我在Ubuntu 18.04上,g -8编译器找不到libboost-asio模块。然而,我用 每当我试图用下面的头文件进行编译时 我被抛出一个编译器错误,说头文件无法找到。 我能够使用其他boost头进行编译,例如boost/array。hpp,但与asio无关。 在libbooost上运行版本检查 returns:版本:1.65.1.0ubuntu1 我也找不到任何asio使用倾向的痕迹。我怀

  • 我有以下代码: 在带有提升1.54的MSVC-11.0中,此代码编译良好,但在带有提升1.49的gcc 4.7.2中,此代码给我以下错误: 在包含 /usr/include/boost/property_tree/ /usr/include/boost/property_tree/detail: 0的文件中,从property_tr: 1:json_parser.hpp:14/json_parse

  • 根据http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/overview/cpp2011/futures.html,我们可以将boost::asio与一起使用。但是我找不到任何有关使用的信息,它具有更多的功能,例如。我怎么用?

  • 由于我在堆栈中使用Vertx3.1,我想使用这些工具带来的未来特性,但在阅读后,API似乎对我来说相当有限。我甚至找不到方法让未来等待一个可观察的。这里是我的代码 在我第一次观察到的onComplete中,我正在检查结果,在finish之后是当我完成以后解除阻塞的操作。但是我正在寻找未来。结果不会被阻止,直到未来。完成像我期望的那样被调用。而是返回null。 问候。

  • 我有两个外部呼叫 这给了未来[Seq[人]] 它接受person_id,并将person_status返回为 Future[String] 我需要使用第一次呼叫中可用序列的第二次呼叫来更新每个人的状态。这就是我尝试的方式,

  • Boost 库是一个经过千锤百炼、可移植、提供源代码的 C++ 库,作为标准库的后备,是 C++ 标准化进程的发动机之一。 Boost 库由 C++ 标准委员会库工作组成员发起,在 C++ 社区中影响甚大,其成员已近 2000 人。 Boost 库为我们带来了最新、最酷、最实用的技术,是不折不扣的“准”标准库。