C++ 什么是阶段性boost库? 在试图构建节俭选项。

C++ 什么是阶段性boost库? 在试图构建节俭选项。,c++,boost,C++,Boost,如果您有分级的boost库(尚未安装),请 在您的环境中指定$BOOST\u ROOT,并且不提供 --带增压选项 我查阅了boost文档(我不太熟悉),但没有找到术语staged boost library的好定义。我看到了括号中的(仍然未安装),但是有许多状态是属于未安装类别的库 当我第一次下载boost时,我运行/bootstrap和/b2来编译它 在这一点上是否是分段的?或者我必须做些别的事情才能使它成为阶段性的吗?您可以调用 b2 --help 查看Boost.Build的选项,您可

如果您有分级的boost库(尚未安装),请 在您的环境中指定$BOOST\u ROOT,并且不提供 --带增压选项

我查阅了boost文档(我不太熟悉),但没有找到术语
staged boost library
的好定义。我看到了括号中的
(仍然未安装)
,但是有许多状态是属于
未安装
类别的库

当我第一次下载
boost
时,我运行
/bootstrap
/b2
来编译它

在这一点上是否是分段的?或者我必须做些别的事情才能使它成为阶段性的吗?

您可以调用

b2 --help
查看
Boost.Build的选项,您可以在那里找到

install                 Install headers and compiled library files to the
=======                 configured locations (below).
...
stage                   Build and install only compiled library files to the
=====                   stage directory.
stage
install
的声明指定Boost库是安装在名为
stage
的子文件夹中还是安装在系统范围内。系统范围的含义取决于操作系统。在Windows中,目标目录是
c:\boost
,在Linux中是
/usr/local
。还可以使用
-–prefix
选项明确指定目标目录。还有,我想这会有帮助的


有关更多信息,请参阅或的入门指南。

当您运行
\b2
编译Boost时,它会创建一个名为stage的文件夹,编译的输出放在%Boost\u ROOT%\stage\lib文件夹中。现在您可以将这个lib文件夹复制到某个地方,并将其添加到链接器的路径中。但是,有些项目可能希望在stage\lib中提供二进制文件。所以这里的“staged”指的是在stage\lib文件夹中编译并呈现的库。
.b2
命令采用几个不同的参数来编译不同的二进制文件子级,例如,下面编译链接到共享运行时并以x64体系结构为目标的二进制文件:

 b2 variant=debug,release link=shared runtime-link=shared address-model=64

lib文件名的每个变体都有标记,因此它们不会相互覆盖,例如,
libboost\u date\u time-vc140-mt-gd-1\u 62。lib

“stage或install声明指定Boost库是安装在名为stage的子文件夹中还是安装在系统范围内。“不,这不是真的。”“安装”绝对不会在系统范围内安装;它完全按照文档所说的做:安装到配置的位置。对于我们这些为交叉编译而构建的人,我们从不在系统范围内安装,但我们肯定使用install。