Boost:如何处理其嵌套的包含文件?
Posted
技术标签:
【中文标题】Boost:如何处理其嵌套的包含文件?【英文标题】:Boost: how to handle its nested include files? 【发布时间】:2017-10-28 11:42:00 【问题描述】:我有一个使用 Hello World 的程序
#include <boost/process.hpp>
我设置了附加包含目录并找到了这个文件。它的第一个包含文件是
#include <boost/process/args.hpp>
发现没问题。它又包含一个包含文件
#include <include/boost/process/detail/basic_cmd.hpp>
引发错误
C1083:无法打开包含文件:'include/boost/process/detail/basic_cmd.hpp'
这是正确的 - 没有更低级别的包含文件!
手动将其更改为
#include <boost/process/detail/basic_cmd.hpp>
允许找到该文件,但其子文件随后会引发相同类型的错误。哪些 Visual Studio 设置会自动处理这些嵌套包含?
【问题讨论】:
这是哪个版本的 boost?我在 1.65.0 版的args.hpp
中没有 include/
前缀
vcpkg 默认构建 1_65_1。也许我需要回到 64_x 版?或者如你所说的 1.65.0
无论 vcpkg 是什么东西,都更像是坏了。只需从适当的 boost 中获取佳能资源即可。 | 1.65.0 绝对是一个糟糕的选择,1.65.1 中解决了许多重要的错误(考虑到错误修复发布的速度)。
也许 vcpkg 现在坏了? github.com/Microsoft/vcpkg 但它似乎有潜力 - 它构建了一个 Boost 版本没有任何麻烦。现在它只需要构建一个工作版本:-)
从我所看到的 boost 的 git 历史中,该行从未引用过 'include/boost/...',它一直是 'boost/...',因为它包括 was added . vcpkg 一定是在做一些奇怪的事情。
【参考方案1】:
我在下载 .zip 文件时也遇到了包含文件问题。
boost/static_assert.hpp includes itself
使用 .7z 存档而不是 .zip 安装 boost。 (建议仅适用于 1.65。)
【讨论】:
以上是关于Boost:如何处理其嵌套的包含文件?的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft Office Access数据库或项目包含一个对文件“dao360.dll”版本5.0的丢失?请问你是如何处理的,