问问题
3417 次
10

我已经下载、提取和编译了 Boost 库(包括单独编译的库)。我现在已经使用了他们的安装程序几次,但我似乎无法让它完全按照我的意愿去做。现在,当我在编译后安装 Boost 时

C:\Boost

这可以。编译的库转到

C:\Boost\lib

这也很好。我遇到的问题是预编译头文件的安装。他们被放在

C:\Boost\include\boost-1_54\boost

有没有办法使用 Boost 构建系统和安装工具来设置要安装的预编译头文件

C:\Boost\include

并且没有 Boost 版本号是该文件夹层次结构的一部分?

我不打算同时使用多个版本的 Boost,所以我没有实际使用该版本号。我意识到我可以在安装完成后手动移动它们,但我想先看看我是否忽略或误解了关于 Boost 构建系统的某些内容。

4

1 回答 1

1

--layout=system从包含路径中删除版本化的子目录(正如@IgorR. 指出的那样)。

“消除路径中的第二个提升”是一个坏主意。在一个受人尊敬的操作系统(咳嗽......)中,各种库的包含文件应该共存于一个公共包含目录中,因此该boost子目录可以避免冲突。因此,Boost 标头习惯性地称为 eg #include <boost/any.hpp>,即包括boost/子目录。

这是由使用 Boost 的第三方软件和 Boost 本身完成的。如果你从路径中删除第二个boost,你最终会得到C:\Boost\include\any.hpp,并且任何使用 Boost 的软件都不会编译,因为甚至 Boost 都找不到它自己的包含。

于 2017-07-04T14:31:59.007 回答