提问人:alle_meije 提问时间:7/12/2015 最后编辑:Communityalle_meije 更新时间:7/12/2015 访问量:348
如何在 Windows 中使用 MASM 构建 Boost(来自 github)?
How to build Boost (from github) with MASM in Windows?
问:
去年,可以使用以下步骤在 Windows 中构建 Boost(来自模块化 boost git 存储库)。
差不多一年后,我用这个食谱走了很远:
- 使用 mingw-get-setup 安装 MinGW(32 位)和 Msys(bash 等)
- 安装 Windows 驱动程序工具包(对于 W7,我使用了 WDK 7 -- GRMWDK_EN_7600_1.ISO),它提供了 MASM 8(根据这篇文章,boost > 1.51 需要) - 下载 ISO 映像并使用 WinRAR 提取文件对我有用 - 安装程序建议不要安装 DSF,所以跳过
- 将 ML64.exe 和 ML.exe 的目录添加到路径中(两者都是必需的)
C:\Windows\WinDDK\7600.16385.1\bin\x86\amd64; C:\Windows\WinDDK\7600.16385.1\bin\x86
- 同时安装一个 64/32 位编译器(我使用的是 TDM gcc 5.1.0-2)并将其
目录添加到 Windows 路径中bin/
- 以管理员身份打开 cmd.exe 并启动 bash
- 在 的父目录中,运行
boost
git clone --recursive https://github.com/boostorg/boost.git boost > clone.log
- 退出 bash,转到 directory boost 并运行:
bootstrap gcc
- 在 中,更改为
project-config.jam
using msvc ;
using gcc ;
- run:
(现在需要建立符号链接)b2 headers
b2 -a -d+2 -q --build-type=complete --build-dir=build toolset=gcc link=shared runtime-link=shared threading=multi
这些选项适用于以前版本的 boost,但现在我只能使用没有选项进行编译。完整的命令行将返回以下错误:
和
.b2
b2
undefined reference to __imp_make_fcontext
undefined reference to __imp_jump_fcontext
我找不到描述这些错误的其他帖子甚至网页。有谁知道 Windows 中仍然使用 GitHub 存储库中最新提升选项的方法?b2
编辑:
使用作品。显然,该选项是上述选项中第一个破坏编译的选项。b2 -a -d+2 -q --build-dir=build toolset=gcc
--build-type=complete
标志,也导致停止。link=shared
runtime-link=shared
threading=multi
b2
有没有人知道如何解决这个问题?是否有适用于当前存储库的 MinGW 补丁?
答:
1赞
doqtor
7/12/2015
#1
最好的选择可能是切换到 MSYS2,它是 MSYS 的全新改进版本。我对 MSYS2 有很好的经验,而我不能对 MSYS 或 Cygwin 这么说(就我而言,这是大量使用 boost 和 c++11 构建一个项目)。
你可以在这里阅读一些比较。
也取自这里的答案:
虽然 MSYS 没有死,但我想说它看起来也不是很健康。
评论
0赞
alle_meije
7/13/2015
太棒了 -- 所以在 MSYS2 中甚至不需要编译 boost?那就更好了(因为如果我不需要,我不打算做助推开发)!
0赞
doqtor
7/13/2015
有预构建的提升和许多其他用于查询。pacman -Ss <libname>
评论