【问题标题】:How to quickly test new Boost versions and libraries?如何快速测试新的 Boost 版本和库?
【发布时间】:2011-08-18 15:20:11
【问题描述】:

作为许多 C++ 程序员,我非常欣赏 Boost 库,并在许多项目中使用它们。因此,我喜欢让自己及时了解定期添加的新库。

但是,我经常发现自己想尝试一些新功能,而无需在我的计算机上再次安装另一个版本。基本上,我希望能够快速尝试一些代码 sn-ps,而无需承担下载源代码和编译它们的负担。

我尝试在ideone 或codepad 等在线编译器上这样做,但它们提供的Boost 版本不是最新的(1.39 for ideone 和1.34 for codepad)。

您知道任何可以让我测试最新版本 Boost 的在线编译器吗?如果没有,你如何继续测试一些图书馆?如果我对 svn 存储库进行部分签出,如何确定我获取了所有依赖项?

【问题讨论】:

  • gentoo linux 可以并行安装多个 boost 版本,您可以选择哪个应该处于活动状态。我认为二进制版本sabayon 也有这个功能。也许你应该看看那个

标签: c++ boost


【解决方案1】:

只需制作一个虚拟机(VirtualBox 很好而且免费),在上面安装操作系统,制作虚拟机的“快照”,然后安装你的开发包,比如最新的 Boost。如果它不是您想要的,请回滚到快照并安装其他东西。完成您喜欢的配置后,克隆该虚拟机并在其中一个克隆上继续尝试新的虚拟机。

【讨论】:

  • 我的主要问题是我的机器上没有同时安装多个版本的 Boost,我不想通过安装数百 MB 的库来浪费硬盘空间测试一个小功能。我也希望不必花太多时间下载/编译所有库,而只关注我感兴趣的库。在这方面,VM 并不能真正帮助我。
  • 一张 1 TB 的磁盘现在售价 45 美元。实际上不值得我们花时间讨论在单个桌面上节省“数百 MB”的磁盘空间。至于不花太多时间下载和编译,使用预打包的 Boost 版本怎么样?例如,在 Fedora 或 Red Hat 或 Ubuntu 上,您可以轻松地为每个发行版安装一个“当前稳定”版本,通常也安装一个或两个其他版本(例如,如果您在 Fedora/Red Hat 系统上,则使用 rpmfusion 或 EPEL )。
  • @John 涉及更多微妙的问题。假设您正在测试一个专门在裸机(而不是通过 vm)上运行的低延迟系统。在这种情况下,VM 不会为您提供有关结果性能的信息
  • @Foo Bah:你对 OP 提出了新的要求吗?他说:“我希望能够快速尝试一些代码 sn-ps。”听起来不像是某种超级优化的系统,在 VM 中运行会破坏他的结果。
【解决方案2】:

使用多个版本的 boost 确实很困难。我很久以前就提出了一个请求,希望添加相关的环境变量或宏,以便能够支持多个版本的 boost。

我做两件事:

1) 并行开发服务器,我用于测试最新版本的库(不仅仅是 boost)。

2) 用于快速编译的虚拟机。

【讨论】:

    【解决方案3】:

    您可以做的是从 svn 签出最新的 boost 库的本地副本并将库安装到本地目录(更改安装前缀)。

    bootstrap.sh 文件中的以下选项将帮助您仅构建/安装您感兴趣的库组件

    148   --show-libraries          show the set of libraries that require build
    149                             and installation steps (i.e., those libraries
    150                             that can be used with --with-libraries or
    151                             --without-libraries), then exit
    152   --with-libraries=list     build only a particular set of libraries,
    153                             describing using either a comma-separated list of
    154                             library names or "all"
    155                             [all]
    156   --without-libraries=list  build all libraries except the ones listed []
    

    使用从 svn 签出的副本进行实验会有所帮助,因为您始终可以使用最新(所需)版本更新您下载的内容并进行测试。

    【讨论】:

      【解决方案4】:

      您也可以在此页面上尝试在线编译器:http://apolukhin.github.io/Boost-Cookbook-4880OS。目前最新的增强版本。并且你可以fork这个站点并自己维护它(以防所有者放弃它)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-12-01
        • 2020-03-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-29
        • 1970-01-01
        相关资源
        最近更新 更多