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



我试图从源代码为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.

请帮忙!谢谢!

================== 原始和更新的开始 =====================

更新:我在网上找到了这个详细的说明: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

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

好了,我搞定了。诀窍是下载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(准确地说是mintty)从源代码构建了Boost库。有一些失败,但可能并不重要:has_icu_test、has_iconv、has_icu_obj、has_icu64_obj、.masm。最后写着

…更新2个目标失败……跳过3个目标……更新了10623个目标…

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

bootstrap.bat gcc

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

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

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

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

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

执行命令:bootstrap mingw

之后运行此命令,它将安装在您选择的目标文件夹中。

b2 install --prefix=c:boostcustominstallationfoldergcc toolset=gcc

就像上面说的,但更具体地说,我用gcc-mingw-4.8.1编译boost-1.54

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

bootstrap.bat gcc
b2.exe toolset=gcc

最新更新