使用 构建 Boost 二进制库时bjam
,可以通过对选项使用某些值来指定要使用的编译器,而无需指定特定的编译器版本。--toolset=
例如:
bjam --with-serialization --toolset=msvc
工具集值 msvc
告诉您在bjam
系统中搜索某个版本的 Microsoft Visual C++,然后使用它来构建 Boost.Serialization 库的许多变体。生成的库将包含一个标签,指示实际使用了哪个工具集。例如,上面的命令会创建如下文件:
libboost_serialization-vc100-mt-s-1_44.lib
libboost_serialization-vc100-mt-sgd-1_44.lib
...
其中文件名中的字符串vc100
是一个工具集标记,指示已找到Microsoft Visual C++ 2010编译器版本并用于构建库。[有关 Boost 库文件命名约定的更多详细信息,请参见此处。]
也可以使用选项的某些其他值来指定编译器的特定--toolset=
版本。例如:
bjam --with-serialization --toolset=msvc-9.0
告诉bjam
我,即使我的系统上可能有多个编译器,我希望它专门使用Microsoft Visual C++ 2008。生成的库包含标记字符串vc90
以指示使用Microsoft Visual C++ 2008构建它们。
Boost 文档对于 Mac 上较新的编译器似乎有点过时(例如,如何区分 GCC、LLVM-GCC 和 LLVM?)
我的问题是,Mac 上 Xcode 3 和 Xcode 4 中特定编译器版本bjam --toolset=
的其他一些值及其对应的标签是什么(不是一般的编译器名称值,如)?这些记录在任何地方吗?即使 Boost 还不支持构建具有某些版本的 Boost 库,是否已经指定了 和 标记值?darwin
toolset
请帮助替换???
此表中的 s:
TOOL AND VERSION --toolset= TAG
======================================================
Microsoft Visual C++ 2008 msvc-9.0 vc90
Microsoft Visual C++ 2010 msvc-10.0 vc100
Apple (1) GCC 4.0 (2) ??? xgcc40
Apple GCC 4.2 ??? xgcc42
Apple LLVM GCC 4.2 ??? ???
Apple LLVM compiler 1.5 (2) ??? ???
Apple LLVM compiler 2.0 (3) ??? ???
(1) Apple 生产自己的 GCC 和 LLVM 编译器版本,以添加 Apple 特定的扩展和行为。
(2) 仅在 Xcode 3 中可用。
(3) 仅在 Xcode 4 中可用。