如何编译Boost.Process库?

时间:2011-04-20 15:12:03

标签: c++ boost compiler-construction bjam

所以有Boost.Process 2006Boost.Process 2008和最近的Boost.Process seems like 2009 by looking at sources)我需要一些关于如何编译这个野兽的分步指导。因为我deffenetly不知道如何做这样的事情。

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

没有管理权限:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

从那里执行bjam(假设bjam可执行文件在你的路径上)再次在boost root中,并且在我的情况下构建包括新库在内的所有东西。我记得用升级日志和进程来做这件事,并且不能想到必须做任何其他事情。

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

至于管理员权限,它们无关紧要,因为你以与构建原始版本相同的方式构建boost。