3

所以有Boost.Process 2006Boost.Process 2008和最新的Boost.Process 看起来像 2009 通过查看来源)我需要一些关于如何编译该野兽的逐步指导。因为我不知道该怎么做。

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

没有管理权限:

  • 下载最新的 Boost 版本。
  • 解压缩,将下载的内容解压缩到某个文件夹中。
  • 在终端中打开该文件夹(例如,您可以打开 'cmd' 或 'terminal' 一个使用命令,而不是使用命令在 Unix(如 OS)(Mac、Linux)和Windows 上cd absolute/path/to/directory/with/extracted/Boost显示文件夹内容- 在输出中您应该能够找到)lsdirboost-build.jam
  • 创建两个文件夹(使用诸如mkdir foldername 之类的命令)build-dirinstall-dir
  • 运行命令./booststrapbooststrap.shbooststrap.bat在 Windows 上)
  • 现在我们可以编译 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 个内核上编译。使用 -jN其中N是编译过程中要使用的所需内核数。
    • 我们设置--without-mpi标志是因为我们可能不使用它。

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

4

1 回答 1

1

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

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

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

E.g. in the case of process - copy C/boost/process.hpp and C/boost/process/ to boost_src_dir/boost/ - copy C/libs/process/ to boost_src_dir/libs/.

From there execute bjam (assuming the bjam executable is on your path) again in the boost root and that in my cases built everything including the new library. I remember doing this with boost log and process and can't think of having to do anything else.

The downside to doing this is that everything gets recompiled. Perhaps someone else has a better method of doing this.

As for the admin priviledges, they shouldn't matter since you're building boost in the same manner that you built the original version.

于 2011-04-20T16:30:49.327 回答