如何编译Boost.Process库?

问题描述 投票:0回答:1

所以有 Boost.Process 2006Boost.Process 2008 和最近的 Boost.Process 通过查看源代码看起来像是 2009 年) 我需要某种关于如何编译该野兽的逐步指导。因为我确实不知道如何做这样的事情。

所以对于一般的官方Boost我明白应该做什么

没有管理权限:

  • 下载最新的 Boost 版本。
  • 解压,将下载的内容提取到某个文件夹中。
  • 在终端中打开该文件夹(例如,您可以打开“cmd”或“终端”,使用像
    cd absolute/path/to/directory/with/extracted/Boost
    这样的命令,而不是在 Unix 操作系统(Mac、Linux)上使用命令显示文件夹内容
    ls
    ,在 Unix 上使用
    dir
    Windows - 在输出中你应该能够找到
    boost-build.jam
    )
  • 创建两个文件夹(使用诸如
    mkdir
    foldername 之类的命令)
    build-dir
    install-dir
  • 运行命令
    ./booststrap
    (在 Windows 上为
    booststrap.sh
    booststrap.bat
  • 现在我们可以编译 Boost 并使用
    ./bjam -j4 link=static  threading=single,multi --builddir=./build-dir install  --without-mpi --prefix=./install-dir
    安装它
    • 这样的调用会将Boost的静态库编译成
      build-dir
      。 (您可能无法从那里使用 Boost - 不会有包含标头和非常大的目录层次结构)
    • bjam 将为我们创建 Boost “安装”到
      install-dir
      - 将出现包含所有 boost 库(静态版本)的文件夹,并包含包含所有 boost 标头的文件夹。
    • 我们设置 -j4 标志在 4 核上编译。使用 -j
      N
      ,其中
      N
      是编译过程中要使用的所需核心数量。
    • 我们设置
      --without-mpi
      标志,因为我们可能不使用它。

但是,将 Real Boost 解压、编译、安装在目录 A 中(bjam 位于文件夹 B 中),将 Boost.Process 下载、解压并提取到文件夹 C,如何编译这 3 个 Boost.Process 版本中的任何一个(没有管理权限)?

c++ boost bjam
1个回答
1
投票

我这样做过一两次,这是我记得的:

下载 boost 库后,例如从沙盒中,将 lib 解压到驱动器上,就像您所说的那样,例如文件夹 C。如果您打开 C 文件夹,它通常具有与 boost 源的其余部分相同的文件夹结构。至少在我尝试过的有限库中是这样的。

从那里将提取的源文件夹内的各个文件和文件夹复制到 boost 源中的相应文件夹中。

例如在过程的情况下 - 将 C/boost/process.hpp 和 C/boost/process/ 复制到 boost_src_dir/boost/ - 将 C/libs/process/ 复制到 boost_src_dir/libs/。

从那里再次在 boost 根目录中执行 bjam (假设 bjam 可执行文件位于您的路径上),在我的情况下,构建了包括新库在内的所有内容。我记得用升压日志和进程来完成此操作,并且想不出必须做任何其他事情。

这样做的缺点是所有内容都会重新编译。也许其他人有更好的方法来做到这一点。

至于管理员权限,它们应该不重要,因为您正在以与构建原始版本相同的方式构建提升。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.