MinGW64 コンパイラを使用してネイティブ 64 ビット用の Boost ライブラリをビルドしようとしましたが、いくつか失敗しました。任意のポインタをいただければ幸いです。ありがとう。
bjam.exe (b2.exe) を 64 ビットでコンパイルし (警告あり)、それを使用して Boost をビルドしました。Boost.Context のビルド時に次のエラーが発生しました。(繰り返し可能なビルドのためにコマンドをバッチで書きました)。見逃したものはありますか?
- コマンド: b2.exe install --prefix=%~dp0\bld\Boost.Build
- エラー: 'ml64' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されません。
ドキュメントを読んだところ、次のように書かれていました。
Boost.Context は、対象となる特定のコンパイラと CPU アーキテクチャ用にビルドする必要があります。Boost.Context にはアセンブリ コードが含まれているため、サポートされている POSIX システムには GNU AS、Windows システムには MASM が必要です。
では、MinGW インストールに含まれている as.exe を使用するように bjam に指示することは可能ですか? (複数の MinGW を持っているため、場所は C:\MinGW\bin として標準ではありません)
project-config.jam
import option ;
using gcc ;
option.set keep-going : false ;
プラットホーム
- ウィンドウズ 7 x64
- ブースト 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%