13

Windows 7 64 ビットを使用しており、プリコンパイルされていないライブラリ (特に、ファイルシステムが必要) をコマンド ラインからコンパイルしたいと考えています (MSVC は使用しません)。私は MinGW を持っていますが、Boost Web サイトで MSYS シェルがサポートされていないことを読んだので、Windows コマンド プロンプトからライブラリをコンパイルしようとしています。

まず、bootstrap.bat を実行すると、次のエラーが発生します。

Building Boost.Jam build engine 
'cl' is not recognized as an internal or external command, 
operable program or batch file. 

Failed to build Boost.Jam build engine. 
Please consult bjam.log for furter diagnostics. 

You can try to obtain a prebuilt binary from 

   http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bjam.log in that case. 

さらに、boost_root ディレクトリのどこにも bjam.log ファイルはありません。

このエラーを無視して、ダウンロードした bjam.exe ファイルを実行しようとすると、別のエラーが発生します。

c:/boost_1_45_0/tools/build/v2/build\configure.jam:145: in builds-raw
*** argument error
* rule UPDATE_NOW ( targets * : log ? : ignore-minus-n ? )
* called with: ( <pbin.v2\libs\regex\build\gcc-mingw-4.5.2\debug\address-model64\architecture-x86>has_icu.exe :  : ignore-minus-n : ignore-minus-q )
* extra argument ignore-minus-q
(builtin):see definition of rule 'UPDATE_NOW' being called
c:/boost_1_45_0/tools/build/v2/build\configure.jam:179: in configu
re.builds
c:/boost_1_45_0/tools/build/v2/build\configure.jam:216: in object(
check-target-builds-worker)@409.check

など、かなりの苦情が寄せられています。'architecture' および 'address-model' オプションを設定しても役に立ちません。

助言がありますか?

@アンドレ

Andre の提案に従って、1 時間半実行され、ほとんどのライブラリをビルドした minGW-bjam を作成しましたが、現時点で必要なものであるファイルシステムはビルドしませんでした。define="BOOST_FILESYSTEM_VERSION=2"とでバージョン 2 を指定して、ファイルシステムのみをコンパイルしようとして--disable-filesystem3も役に立ちません。次のエラーが表示されます。

gcc.compile.c++ bin.v2\libs\filesystem\build\gcc-mingw-4.5.2\debug\v3\src\operations.o
In file included from ./boost/filesystem/v3/operations.hpp:24:0,
             from libs\filesystem\v3\src\operations.cpp:48:
./boost/filesystem/v3/config.hpp:16:5: error: #error Compiling Filesystem version 3 
file with BOOST_FILESYSTEM_VERSION defined != 3
libs\filesystem\v3\src\operations.cpp:647:26: warning: 
'<unnamed>::create_symbolic_link_api' defined but not used

"g++"  -ftemplate-depth-128 -O0 -fno-inline -Wall -g -DBOOST_ALL_NO_LIB=1 -
DBOOST_FILESYSTEM_DYN_LINK=1 -DBOOST_FILESYSTEM_VERSION=2 -DBOOST_SYSTEM_DYN_LINK=1  -
I"." -c -o "bin.v2\libs\filesystem\build\gcc-mingw-4.5.2\debug\v3\src\operations.o"  
"libs\filesystem\v3\src\operations.cpp"

...failedなどなど、発言が多いです。

ここにヒントはありますか?

4

4 に答える 4

29

それは簡単です。「bootstrap.batgcc」を使用してGCCを選択するだけです

于 2011-12-22T11:24:13.177 に答える
9

ブートストラップ スクリプトは、msvc コンパイラが利用可能であることを前提としています。ただし、ブートストラップ スクリプトを使用せずに手動で bjam をビルドできます。

tools\build\v2\engine\src ディレクトリに移動し、「build.bat mingw」を呼び出します。bjam.exe が作成されます。次に、それを %PATH% またはルートブーストディレクトリに配置できます...

正直なところ、私は通常、msvc コンパイラでこのように bjam をビルドし、この「msvc-bjam」を使用して mingw ブースト ライブラリをビルドします。

于 2011-03-14T14:04:13.293 に答える
0

まだコメントできないので、私が走ったことを追加したい

ブートストラップ mingw

b2 を適切に生成してから

b2 --build-dir="c:\boost_release" toolset=gcc --build-type=complete "c:\boost_release\stage"

インクルードはブースト ルート フォルダー (boost_1_58_00/boost) に配置され、バイナリは指定されたビルド フォルダーに配置されます。

于 2015-05-22T13:58:04.450 に答える