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:如何处理其嵌套的包含文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理包含具有空文件名的文件的 zip 文件

如何处理常见的JSON嵌套结构

如何处理构建“dist”文件夹

如何处理嵌套的属性列表

Microsoft Office Access数据库或项目包含一个对文件“dao360.dll”版本5.0的丢失?请问你是如何处理的,

如何处理带空格的文件名?