我尝试使用 MinGW64 编译器为本地 64 位构建 Boost 库,但遇到了一些失败。任何指针表示赞赏。谢谢。
我得到了 64 位编译的 bjam.exe (b2.exe)(带有警告),我用它来构建 Boost。构建 Boost.Context 时出现以下错误。(我为可重复构建批量编写了命令)。我错过了什么?
- 命令:b2.exe install --prefix=%~dp0\bld\Boost.Build
- 错误:“ml64”未被识别为内部或外部命令、可运行程序或批处理文件。
我阅读了文档,它说:
Boost.Context 必须针对特定的编译器和 CPU 架构构建。Boost.Context 包含汇编代码,因此,支持的 POSIX 系统需要 GNU AS,Windows 系统需要 MASM。
那么,是否可以告诉 bjam 使用我的 MinGW 安装中包含的 as.exe?(因为我有多个 MinGW,所以位置不是标准的 C:\MinGW\bin)
项目-config.jam
import option ;
using gcc ;
option.set keep-going : false ;
平台
- 视窗 7 x64
- Boost 1.52.0(来自 sourceforge)
- MinGW 4.7.2 (rubenvb x64)
- 没有安装 MSVC(我的机器上没有安装/找到 ml64.exe)
- 安装 WDK 时出现编辑问题
构建 BJam 时的警告,我认为可以忽略
function.c: In function 'check_alignment':
function.c:222:5: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
整批
SET OPATH=%PATH%
SET BOOST_VER=boost_1_52_0
SET "PATH_ZIP=C:\Program Files\7-zip"
SET "PATH_MINGW=C:\MinGW\rubenvb-4.7.2-64"
SET "PATH_SRC=%~dp0\%BOOST_VER%"
SET "PATH_BJAM=%PATH_SRC%\tools\build\v2\engine"
TITLE Extracting Packages ...
IF NOT EXIST "%PATH_SRC%.7z" GOTO :err_nozip
RD /S /Q "%PATH_SRC%"
"%PATH_ZIP%"\7z x "%PATH_SRC%.7z"
TITLE Building BJam ...
PUSHD "%PATH_BJAM%"
SET "PATH=%PATH_MINGW%\bin"
SET "BOOST_JAM_TOOLSET_ROOT=%PATH_MINGW%\"
CALL build.bat mingw --show-locate-target
SET PATH=%OPATH%
COPY "bin.ntx86_64\b2.exe" "%PATH_SRC%\" > nul
COPY "bin.ntx86_64\bjam.exe" "%PATH_SRC%\" > nul
POPD
TITLE Installing Boost Build...
PUSHD "%PATH_SRC%"
ECHO import option ; > project-config.jam
ECHO. >> project-config.jam
ECHO using gcc ; >> project-config.jam
ECHO. >> project-config.jam
ECHO option.set keep-going : false ; >> project-config.jam
ECHO. >> project-config.jam
b2.exe install --prefix=%~dp0\bld\Boost.Build
POPD
SET PATH=%OPATH%