1

MinGW (x64) を使用して 64bit 用のソースから Boost をビルドしようとしましたが、bjam.exe の作成に失敗しました。ヘルプへのポインタは大歓迎です。ありがとう。

  • パッケージ: Boost 1.52.0 (sourceforge からダウンロード、C:\BoostSrc)
  • パッケージ: MinGW-w64 (4.7.2-x64 rubenvb、C:\MinGW\rubenvb-4.7.2-64)

再現可能なビルドを確保するために次のバッチ ファイルを作成しましたが、問題が発生しました。提供されたバッチ ファイルで bjam.exe をビルドできません。提供された「bootstrap.bat」を MinGW の非標準インストール パスとして使用しておらず (複数の mingw セットがあります)、マシンに MSVC がインストールされていません。

SET BOOST_VER=boost_1_52_0
SET PATH_MINGW=C:\MinGW\rubenvb-4.7.2-64
SET PATH_BJAM=%~dp0\%BOOST_VER%\tools\build\v2\engine
SET PATH="%PATH_MINGW%\bin"
PUSHD "%PATH_BJAM%"

REM check path
mingw32-make -version

REM error below
build.bat mingw --toolset-root=%PATH_MINGW% --show-locate-target

SET PATH=%OPATH%
POPD
REM ... some more ...

エラーメッセージ

gcc: エラー: CreateProcess: そのようなファイルまたはディレクトリはありません

コマンドプロンプトからコマンドを直接入力すると(パスを設定し、場所に移動してbuild.batを呼び出す)、スムーズに進みます(無視できると思われる警告があります)

4

2 に答える 2

3

これで問題が解決する場合がありますが、そうでない場合でも、とにかく変更することをお勧めします。

PATHこれは組み込みの重要なWindows環境変数であり、MINGWが依存している可能性があるため、別の変数名を使用してください。

于 2012-12-19T16:43:43.113 に答える
0

BOOST_ROOT\tools\build\v2\engine にある build.bat を掘り下げた後、ツールセットとして「mingw」を指定すると、スクリプトは「ツールセットの推測」ステップをバイパスし、変数「BOOST_JAM_TOOLSET_ROOT」の定義に失敗し、呼び出しを残しました。 gcc 関連の実行可能ファイルへの変換に失敗しました。

今、次のようにバッチを変更しました

PUSHD "%PATH_BJAM%"
SET "PATH=%PATH_MINGW%\bin"

REM add the line below
SET "BOOST_JAM_TOOLSET_ROOT=%PATH_MINGW%\"

build.bat mingw --show-locate-target
SET PATH=%OPATH%

BOOST_JAM_TOOLSET_ROOT 変数を外部バッチ ファイルから手動で設定したところ、問題なく動作しました。内部の build.bat は次のようにパス変数を追加するため、末尾の「\」文字に注意してください。

set "PATH=%BOOST_JAM_TOOLSET_ROOT%bin;%PATH%"

コメントや提案をありがとうございました。

于 2012-12-20T06:05:11.233 に答える