58

我试图在 boost 库名称中找出这gd意味着,我只发现另外两个人在寻找相同的东西。

我想它应该是一个有明确记录的地方,我想找到它。

  • mt- 多头,得到它bjam threading=multi
  • s-bjam runtime-link=static
  • g- 使用标准和运行时支持库的调试版本。什么bjam开关???
  • d- 调试bjam variant=debug

更新

如何控制bjam控制上述变体的开关?事实上,我唯一无法识别的是g.

4

3 回答 3

63

请参阅Boost 入门 windows第 6.3 节命名和第 6.1 节关于 Unix 命名

处理 -mt 和 d 的是

-mt Threading tag: indicates that the library was built with multithreading support enabled. Libraries built without multithreading support can be identified by the absence of `-mt`.  

-d ABI tag: encodes details that affect the library's interoperability with other compiled code. For each such feature, a single letter is added to the tag as listed in this table:
  Key   Use this library when (Boost.Build option)
  s     linking statically to the C++ standard library 
        and compiler runtime support libraries.
        (runtime-link=static)
  g     using debug versions of the standard and runtime support libraries. 
        (runtime-debugging=on)
  y     using a special debug build of Python.
        (python-debugging=on)
  d     building a debug version of your code.
        (variant=debug)
  p     using the STLPort standard library rather than
        the default one supplied with your compiler.
        (stdlib=stlport)
于 2010-04-26T16:47:22.860 回答
12

http://www.boost.org/doc/libs/1_35_0/more/getting_started/windows.html#library-naming的 Boost 文档中,约定是:

-mt Threading 标签:表示该库是在启用多线程支持的情况下构建的。没有多线程支持的库可以通过缺少 -mt 来识别。

-d ABI 标记:对影响库与其他编译代码的互操作性的细节进行编码。对于每个这样的功能,标签中都会添加一个字母:

Key 在以下情况下使用此库:
s 静态链接到 C++ 标准库和编译器运行时支持库。
g 使用标准和运行时支持库的调试版本。
y 使用 Python 的特殊调试版本。
d 构建代码的调试版本。
p 使用 STLPort 标准库,而不是编译器提供的默认库。
n 使用 STLPort 已弃用的“本机 iostreams”功能。

例如,如果您在“native iostreams”模式下构建代码的调试版本以与静态运行时库和 STLPort 标准库的调试版本一起使用,则标记将为:-sgdpn。如果以上都不适用,则省略 ABI 标签。

于 2013-02-22T08:00:28.010 回答
0

BBv2 文档中描述了基本的内置功能集,即您在命令行中指定的 (feature=value)(请参阅内置功能)。我不知道我们是否已经在即将发布的 1.43 版本中更新了入门指南,但是有一个出色的文档更改将这些内置选项描述添加到入门指南中以便更快地访问。

于 2010-04-27T12:27:30.313 回答