6

我试图从 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

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

4

4 回答 4

4

好的,我让它工作了。诀窍是从 sourceforge 下载 tar.bz2 文件,而不是 zip 文件(特别是http://sourceforge.net/projects/boost/files/boost/1.53.0/)。即使对于同一版本的 Boost,zip 和 tar.bz2 文件都列在同一个文件夹下,但内容是不同的。zip文件中缺少一些文件夹,并且压缩文件的行尾约定不同。无论如何,在我下载并解压 tar.bz2 文件之后。我按照此处给出的说明进行操作:

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

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

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

希望这将在未来对其他人有所帮助。

于 2013-06-08T23:03:31.000 回答
3

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

bootstrap.bat gcc

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

于 2013-06-06T20:47:01.770 回答
1

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

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

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

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

运行此命令:bootstrap mingw

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

b2 install --prefix=c:\boost\custominstallationfolder\gcc toolset=gcc
于 2014-12-02T02:05:40.373 回答
0

Like said above, but more specifically for me compiling boost-1.54 with gcc-mingw-4.8.1

Using a Windows shell (cmd.exe) navigate to root of boost directory directory then

bootstrap.bat gcc
b2.exe toolset=gcc
于 2013-10-11T15:28:42.713 回答