【问题标题】:Adding only boost::units to a C++ project仅将 boost::units 添加到 C++ 项目
【发布时间】:2013-03-15 20:33:33
【问题描述】:

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

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

我想知道:

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

另外,boost::units 是否需要编译,还是只有标头?

【问题讨论】:

标签: boost boost-units


【解决方案1】:

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

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

  • 升压::数学
  • boost::mpl
  • boost::type_traits
  • boost::序列化
  • 升压::配置
  • boost::utility
  • boost::lambda
  • boost::version

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

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

【讨论】:

  • 谢谢,我想检查依赖关系的最简单方法是首先包含 boost::units 并添加东西直到它编译。然后将这些标头检查回 svn,但这意味着任何更新都不会被拉入我的 repo。决定,决定......
  • 对于其他到达这里的人,另请参阅stackoverflow.com/questions/2150836/…
  • 所以我得到了这个工作,bcp 是我的 OP 中重复问题的链接中的关键。我有一个答案(主要供我参考),其中包含如何操作的说明。
【解决方案2】:

我想出了如何做到这一点。以下是针对 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

【讨论】:

    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 2012-12-05
    • 1970-01-01
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多