需要帮助从MinGW的源代码构建Boost

时间:2013-06-06 16:53:31

标签: boost install mingw

我试图从源代码为MinGW构建Boost库。 Boost网站说没有保证,但似乎有人成功完成了它。但是我在网上找不到太多指示。

我更新了标题,以便更好地反映我的问题。

========================原帖===================== =========

我下载了Boost 1.53.0,将其解压缩并cd到MinGW shell中的文件夹。它在我尝试的第一步失败了:

$ ./bootstrap.sh mingw
Building Boost.Build engine with toolset gcc...
Failed to build Boost.Build build engine
Consult 'bootstrap.log' for more details

在bootstrap.log中,错误是:

builtins.c:33:23: fatal error: sys/wait.h: No such file or directory
compilation terminated.
execunix.c:17:26: fatal error: sys/resource.h: No such file or directory
compilation terminated.
fileunix.c:98:17: fatal error: ar.h: No such file or directory
compilation terminated.

请帮忙!谢谢!

==================原始结束和更新开始===================== < / p>

更新:我在网上发现了这条详细说明: http://vijay.axham.com/blog/478/building-boost-binaries-on-mingw

我跟着它,现在陷入最后的构建步骤,这应该花费很长时间,但我得到了一个错误:

$ b2  --build-dir=$BOOST_BUILD_DIR --prefix=$BOOST_INSTALL_DIR toolset=gcc variant=release link=static threading=multi runtime-link=static install 2>&1 | tee $BOOST_BUILD_DIR/build.log
error: Unable to find file or target named
error:     'boost/tr1/tr1/bcc32'
error: referred from project at
error:     '.'

但目录就在那里(应该是因为它刚从zip文件中提取出来)

$ ls boost/tr1/tr1/bcc32/
array.h  random.h  regex.h  tuple.h  type_tra.h  unordere.h

越来越近但仍然需要帮助!谢谢!

4 个答案:

答案 0 :(得分:4)

好的,我搞定了。诀窍是下载tar.bz2文件,而不是sourceforge的zip文件(特别是http://sourceforge.net/projects/boost/files/boost/1.53.0/)。即使zip和tar.bz2文件都列在相同版本的Boost的同一文件夹下,但内容也不同。 zip文件中有一些丢失的文件夹,压缩文件的行结束约定是不同的。无论如何我下载并解压缩了tar.bz2文件。我按照这里给出的说明进行了操作:

http://vijay.tech/articles/wiki/Programming/Cpp/Boost/BuildingBoostOnMinGw

并使用MinGW shell从源代码成功构建了Boost库(准确地说是mintty)。有一些失败但可能不重要:has_icu_test,has_iconv,has_icu_obj,has_icu64_obj,.masm。最后它说

  

...未能更新2个目标......       ...跳过3个目标......       ...更新了10623个目标...

希望这将有助于其他人。

答案 1 :(得分:3)

不要使用bash。使用cmd.exe构建它。

bootstrap.bat gcc

编译器可执行文件应该在PATH上。

答案 2 :(得分:1)

不要使用bash。使用cmd.exe构建它,如下所述:

在您的系统上安装MinGw。我建议使用与处理器相同的位系统。然后将系统环境中的路径设置为包含g ++,...(编译器可执行文件应位于PATH。)文件的bin文件夹。现在你准备好了。

出于显而易见的原因,启动一个新的终端(cmd.exe),不要使用不知道你的新设置的已经打开的终端。

下载boost,最新的稳定版本,解压缩并在命令窗口中按照提取的提升的主目录路径。

运行此命令:bootstrap mingw

之后运行此命令,该命令将安装在您选择作为目的地的文件夹中。

b2 install --prefix=c:\boost\custominstallationfolder\gcc toolset=gcc

答案 3 :(得分:0)

如上所述,但更具体地说是我使用gcc-mingw-4.8.1编译boost-1.54

使用Windows shell(cmd.exe)导航到boost目录目录的根目录,然后

bootstrap.bat gcc
b2.exe toolset=gcc