64ビットWindows用の64ビットバージョンのBoost


119

VS2008用の64ビットBoostライブラリのバージョンはありますか?それとも自分でコンパイルする必要がありますか?もしそうなら、それを経験した人はいますか?

回答:


226

短い答えとして:

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete

より長い答えとして、VS .NET 2008 32ビットおよび64ビットのブーストライブラリを同じ階層に配置するためのビルドノートを次に示します(これは一般的なユースケースではないかと思います)。

  1. Win32バイナリをビルドする

    bjam --toolset=msvc-9.0 --build-type=complete stage
  2. lib \ win32ディレクトリを作成します。

  3. stage \ libの内容をlib \ win32に移動します
  4. ディレクトリbin.v2とステージを削除します
  5. x64バイナリをビルドする

    bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
  6. lib \ x64ディレクトリを作成します

  7. stage \ libの内容をlib \ x64に移動します
  8. ディレクトリbin.v2とステージを削除します

25
ステージディレクトリを指定することもできます。これにより、結果のライブラリをコピーする必要がなくなります。bjam --toolset = msvc-9.0 address-model = 64 --build-type = complete --stagedir = lib \ x64 stage
hkaiser

8
段階は
Ramadheer Singh 2010

16
残念ながら64をビルドするには、address-model = 64は機能しません。Visual Studio \ bin \ amd64 \ cl.exeを指すパスが必要です。それ以外の場合は、32ビットバージョンをビルドします。これを行うには、Microsoft SDKコマンドプロンプトを起動し、すべてのパスを再定義する「setenv / Release / x64」を使用します。
Budric

2
@Budric、よろしいですか?私のために働いているようだし、これは明示的に64ビットで構築する場合でも、32ビットコンパイラへのパスを提供するために述べています。
Maciej Gryka 2012年

4
32ビットバージョンと64ビットバージョンの両方をビルドする必要がある場合は、stagedirパラメータを使用することもできます: "bjam --stagedir =。/ lib_64bit address-model = 64 toolset = msvc threading = multi"および "bjam --stagedir =。 / lib toolset = msvc threading = multi "
Odin

63

私のサイトにビルドされたバイナリがあります:http : //boost.teeks99.com

2013-05-13を編集:私のビルドは、sourceforgeページから直接利用できます(1.53以降)。


5
BoostPRo(Boostライブラリのバイナリを提供する)はx64バージョンを提供しないため、これを提供してくれてありがとう。ありがとう!
CharlesB 2010

VS2015(VC ++ 14)バイナリを投稿できる可能性はありますか?よろしくお願いします。
ラッセルグリーン

1
msvc-14.0バイナリは、数週間後にリリースされる1.59リリースに含まれる予定です。
teeks99 2015

22

UPDATE(19.09.2017):VS2017のスクリプト行を追加しました。Boostは、上記の特定のバージョンのVS2017コンパイラをサポートしていることに注意してください。最新バージョン(1.65.1)を使用しました。

私はこのスクリプトを使用して、x64およびx86プラットフォーム用のブースト、libおよびdll、VS2017、VS2015、およびVS2013のデバッグとリリースをビルドしました。

md stage\VS2017\x64
md stage\VS2015\x64
md stage\VS2013\x64    

b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/x64 address-model=64 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release  

b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/x64 address-model=64 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/x64 address-model=64 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release


md stage\VS2017\win32
md stage\VS2015\win32
md stage\VS2013\win32

b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2017/win32 --build-type=complete --toolset=msvc-14.1 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2015/win32 --build-type=complete --toolset=msvc-14.0 --threading=multi --runtime-link=shared --variant=release

b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=debug
b2 --stagedir=./stage/VS2013/win32 --build-type=complete --toolset=msvc-12.0 --threading=multi --runtime-link=shared --variant=release

pause

.batファイルを作成して実行し、Boostバイナリをビルドできます。


12

現時点では、teeks99が提供する64ビットバイナリ(他の回答を参照)が唯一の無料の64ビットバイナリのようです。しばらくの間、BoostProは64ビットのバイナリも提供していましたが、1.51の時点では、正常に機能していないようです。

したがって、teeks99バイナリまたは独自のビルドという2つのオプションに戻ります。

私が自分で構築するために必要な情報のほとんどはここにありました:https : //stackoverflow.com/a/2655683/613288

唯一足りないのは、これをVisual Studio 2010 Expressの無料バージョンで動作させる方法です。他の場所で欠けている部分が見つかりました。カスタマイズした後、boost 1.49.0バイナリのビルドに使用した最終レシピは次のとおりです。

Visual C ++を起動し、[ツール]メニューからVisual Studioコマンドプロンプトを起動します。

コンソールウィンドウで、次の操作を行います。

"C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\setenv.cmd"  /Release  /x64

そして、boostディレクトリで:

bootstrap.bat
b2  -a  -sBZIP2_SOURCE="C:\bzip2-1.0.6"   -sZLIB_SOURCE="C:\zlib-1.2.5"   --toolset=msvc-10.0  architecture=x86  address-model=64  link=static  --with-date_time  --with-filesystem  --with-serialization  --with-test  --with-thread  --with-system  --with-regex  --with-iostreams  stage

最後のコマンドは、私がたまたま必要としたもの(いくつかの静的にリンクされたライブラリー)に合わせてカスタマイズされています。


x64 1_51インストーラーをダウンロードしましたが、システムlibの破損したアーカイブが含まれており、他の一部のlibsにはx86があるようです(リンカーの警告が表示されます)。teeks99のライブラリに切り替えた後、すべてが正常になりました。
Alex

4

VS2005とVS2008用にすべてをコンパイルする小さなスクリプトを作成しました。

md stage\lib\win32
md stage\lib\x64

REM Visual Studio 2005
bjam --toolset=msvc-8.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-8.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\

REM Visual Studio 2008
bjam --toolset=msvc-9.0 --build-type=complete stage
move /Y stage\lib\* stage\lib\win32\

bjam --toolset=msvc-9.0 address-model=64 --build-type=complete stage
move /Y stage\lib\* stage\lib\x64\
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.