0

我有一个开源热力学属性库,它全部用 C++ 编码,我终于对处理单位感到沮丧。因此,我想添加boost::units到我的核心代码中,以便使用boost::units零(?)计算开销来完成所有单元处理。

但是我需要我的代码来运行跨平台/交叉编译器(Boost 可以做到这一点),并且理想情况下不需要下载所有 Boost,因为它不完全是一个小包。

我想知道:

是否可以只包含 Boost 的一小部分?甚至不下载 Boost 的其他部分?我知道如果不包含其他 Boost 模块,它们将不会包含在构建中,但我什至不想下载其他模块。

此外,是否boost::units需要编译还是仅标题?

4

2 回答 2

2

它是一个只有头文件的库,它确实依赖于其他 Boost 库。

快速检查表明您至少需要:

  • 提升::数学
  • 升压::mpl
  • boost::type_traits
  • boost::序列化
  • 提升::配置
  • 提升::实用程序
  • 升压::λ
  • 提升::版本

加上这些库可能包含的其他内容。从 1.49 版开始,所有这些库都只有标头。

如果你只是安装 Boost 而不编译它,你应该可以直接使用头库。安装后,如果跨多个平台安装标头的过程很繁琐,您可以将相关标头传输到 SVN。

于 2013-03-15T21:00:43.350 回答
0

我想出了如何做到这一点。以下是针对 Windows 的说明,但在其他平台上基本相同。

  1. 下载最新的提升源

  2. cd进入 boost 源文件夹

  3. bootstrap

  4. .\b2建造一切,去喝杯咖啡

  5. 从http://www.boost.org/doc/libs/1_53_0/doc/html/boost_units/Quick_Start.html复制示例单元代码并保存到sample.cpp

  6. "dist\bin\bcp.exe" --scan sample.cpp boost_units

于 2013-03-23T16:03:49.190 回答