[解決済み】Visual Studio 2010でBoostを使用する方法
質問
Visual Studioの空のプロジェクトでBoostライブラリを使用する方法について、ステップバイステップで説明する良い方法は何でしょうか?
どのように解決するのですか?
一方 ネイトの答え また、外部ライブラリを必要とする様々なオプションコンポーネントでのコンパイルに関する情報も含まれています。
ヘッダのみのライブラリを使用する場合は、ダウンロードしたboostを解凍して、環境変数を設定するだけです。以下の手順で、Visual Studioのみに環境変数を設定し、システム全体には設定しないようにします。一度だけ行う必要があることに注意してください。
-
boostの最新版(執筆時点では1.47.0)を任意のディレクトリに解凍します(例.
C:\boost_1_47_0
). - Visual Studioで空のプロジェクトを新規に作成します。
- プロパティマネージャーを開き、選択したプラットフォーム用の設定の1つを展開します。
-
&を選択し、右クリック
Microsoft.Cpp.<Platform>.user
を選択しProperties
をクリックすると、編集用のプロパティ・ページが表示されます。 -
選択
VC++ Directories
を左側に表示します。 -
を編集します。
Include Directories
セクションに、ブーストのソースファイルへのパスを追加します。 - 必要であれば、異なるプラットフォーム用に3〜6の手順を繰り返します。
boostのビルドが必要な部分を利用し、外部依存が必要な機能を利用しないのであれば、ビルドは非常にシンプルになります。
-
boostの最新版(執筆時点では1.47.0)を任意のディレクトリに解凍します(例.
C:\boost_1_47_0
). - 選択したプラットフォームの Visual Studio コマンドプロンプトを起動し、boost がある場所に移動します。
-
実行します。
bootstrap.bat
を実行して、b2.exe(旧名:bjam)をビルドします。 -
b2を実行します。
-
Win32です。
b2 --toolset=msvc-10.0 --build-type=complete stage
; -
x64:
b2 --toolset=msvc-10.0 --build-type=complete architecture=x86 address-model=64 stage
-
Win32です。
散歩する/映画を見る/......。
- 上記のインストラクション一式から手順2~6を経て、環境変数を設定します。
-
を編集します。
Library Directories
セクションに、ブーストライブラリの出力先パスを追加してください。(上記の例と説明では、デフォルトはC:\boost_1_47_0\stage\lib
. x86 & x64を並べたい場合は、まずディレクトリをリネームして移動します(例えば<BOOST_PATH>\lib\x86
&です。<BOOST_PATH>\lib\x64
). - 必要に応じて、別のプラットフォームでも手順2~6を繰り返してください。
オプションのコンポーネントが必要な場合は、さらに作業が必要です。以下はその例です。
- Boost.IOStreams Bzip2フィルタ
- Boost.IOStreams Zlibフィルタ
- ブースト.MPI
- ブースト・Python
- Boost.Regex ICUのサポート
Boost.IOStreams Bzip2 フィルタです。
-
最新版のbzip2ライブラリ(執筆時点では1.0.6)のソースファイルを任意のディレクトリに解凍します(例.
C:\bzip2-1.0.6
). -
上記の2番目の手順でboostをビルドしますが、オプションで
-sBZIP2_SOURCE="C:\bzip2-1.0.6"
手順5でb2を実行する際に
Boost.IOStreams Zlibフィルタ
-
zlibライブラリの最新版(執筆時点では1.2.5)のソースファイルを任意のディレクトリにアンアーカイブする(例.
C:\zlib-1.2.5
). -
上記の2番目の手順でboostをビルドしますが、オプションで
-sZLIB_SOURCE="C:\zlib-1.2.5"
手順5でb2を実行する際に
ブースト.MPI
- Microsoft Compute Cluster Pack などの MPI ディストリビューションをインストールします。
- 上記2番目の手順の1~3の手順で、boostをビルドします。
-
ファイルを編集する
project-config.jam
ディレクトリ内の<BOOST_PATH>
を実行した結果、ブートストラップが発生しました。次のような行を追加してくださいusing mpi ;
(の前にスペースがあることに注意してください)。 - 上記の2番目の手順から残りの手順に従い、boostをビルドします。MPIインストールの自動検出に失敗した場合は、適切な場所でMPIを探すために適切なビルドファイルを探して修正する必要があります。
ブースト.パイソン
- ActiveState社のActivePythonなど、Pythonディストリビューションをインストールします。PythonのインストールがPATHにあることを確認します。
-
32ビット版のライブラリを完全にビルドするには32ビット版のPythonが必要であり、64ビット版も同様です。そのような理由で複数のバージョンをインストールしている場合、特定のバージョンがどこにあって、いつどれを使うかをb2に伝える必要があります。そのための一つの方法は、ファイル
project-config.jam
というディレクトリに<BOOST_PATH>
を実行した結果、ブートストラップが生成されます。Pythonのインストール・パスとamp; バージョンに応じて、次の2行を追加してください(';'の前のスペースに注意してください)。using python : 2.6 : C:\\Python\\Python26\\python ;
using python : 2.6 : C:\\Python\\Python26-x64\\python : : : <address-model>64 ;
このようなPythonの明示的な指定は、現在MPIのビルドを失敗させる原因となっていることに注意してください。そのため、MPIもビルドする場合は、指定あり・なしのビルドを別々に行い、すべてをビルドする必要があります。
-
上記の2番目の手順で、boostをビルドします。
Boost.Regex ICUのサポート
-
ICU4Cライブラリの最新版(執筆時点では4.8)のソースファイルを任意のディレクトリにアンアーカイブします(例.
C:\icu4c-4_8
). -
でVisual Studio Solutionを開きます。
<ICU_PATH>\source\allinone
. - デバッグとリリースの両方について、選択したプラットフォーム用にすべて構築します。がある場合があります。 問題 デバッグビルドとリリースビルドの出力が同じディレクトリにある場合(これはデフォルトの動作です)、ICU4Cの最近のリリースをVisual Studio 2010でビルドします。回避策としては、(例えばデバッグビルドの)すべてをビルドして、2番目のコンフィギュレーション(例えばリリースビルド)ですべてをリビルドすることができます。
- x64用にビルドする場合、ビルド後に64ビットアプリケーションを実行するステップがあるため、x64 OSを実行している必要があります。
- オプションで、終了時にソースディレクトリを削除します。
-
上記の2番目の手順でboostをビルドしますが、オプションで
-sICU_PATH="C:\icu4c-4_8"
手順5でb2を実行する際に
関連
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】Visual Studio 2012 Release Previewのインストール後に「LINK : fatal error LNK1123: failure during conversion to COFF: file invalid or corrupt」エラーが発生する。
-
[解決済み] UbuntuにBoostをインストールする方法
-
[解決済み] static_cast, dynamic_cast, const_cast, reinterpret_cast はいつ使うべきですか?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] 0.1fを0にすると、なぜ10倍もパフォーマンスが落ちるのですか?
-
[解決済み] Visual Studioで "stdafx.h "は何に使うのですか?
-
[解決済み】C/C++の"-->"演算子とは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】変数やフィールドがvoid宣言されている