web-dev-qa-db-ja.com

MSVC 11(VS 2012)でのブーストコンパイル

Visual Studio C++ 11Boost(バージョン 1.48. )をビルドする方法は? bootstrap.batはツールセットvc11を見つけることができません。ツールセットvc11をF:\Programming\boost_1_48_0\tools\build\v2\engine\build.batに追加しましたが、メッセージが表示されました:

ERROR: Cannot determine the location of the VS Common Tools folder.

EDIT:TheFerruccio答え は、VS 2012 ExpressおよびBoost 1.51.0でも機能します。

27
Loom

次の手順に従って、なんとかビルドできるようにしました。

  1. Visual Studioコマンドプロンプトを開きます。スタートメニューから:すべてのプログラム| Microsoft Visual Studio 11 |ネイティブx64コマンドプロンプト。
  2. Boost_1_48_0を解凍し、作業ディレクトリをboost_1_48_0に設定します。
  3. bootstrap.batを実行します
  4. bjam.exeを実行する

ツールキットのバージョンを検出できないことに関する多くの警告が生成されますが、とにかく続行されます。

更新:cclibs と呼ばれるGitHubリポジトリを作成しました。これにより、Boostおよびその他のC++ライブラリのビルドがより簡単になります。

32
Ferruccio

この答えは次の場合に美しく機能します:

  • VS2012(Visual Studio 2012 Update 2)
    • またはVS2015(Visual Studio 2015 Update 2)
  • Windows 7 x64
    • またはWindows 10 x64
  • Boost v1.53
    • またはBoost v1.60

一言で言えば

  1. Visual Studio 2012コマンドプロンプトを開きます。スタートメニューから:All Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt
  2. boost_1_53_0.ZipC:\boost153に解凍します。
  3. bootstrap.batを実行します
  4. bjam.exeを実行します
  5. 新しいC++プロジェクトには、下のスクリーンショットのように、Boostライブラリへのパスを含めます。

(オプション)ステップバイステップの説明

  1. Visual Studio 2012をインストールします。
  2. Update 2をインストールします。
  3. ダウンロード SourceForgeからのブースト
  4. 「C:\ boost153」に解凍します
  5. 管理者権限でVisual Studioコマンドプロンプトを開きます。スタートメニューのAll Programs..Microsoft Visual Studio 2012..Visual Studio Tools..x64 Native Tools Command Prompt
  6. cd c:\boost153を使用して、boostディレクトリに移動します。
  7. bootstrap.batを実行します。
  8. bjam.exeを実行します。これにより、すべてのライブラリが構築されます。
  9. 警告があるかもしれませんが、これらは無視できます。
  10. 約5分後にコンパイルが完了すると、次のように表示されます。

    The Boost C++ Libraries were successfully built!
    The following directory should be added to compiler include paths:
       C:/boost153
    The following directory should be added to linker library paths:
       C:\boost153\stage\lib
    
  11. これは重要です。これらの2つのパスを新しいC++プロジェクトに追加する必要があります。

  12. 新しいC++プロジェクトを作成します。
  13. 数ステップ前に述べたように、C:/boost153compiler include pathに追加し、C:\boost153\stage\liblinker library pathに追加します。
  14. プロジェクトを右クリックしてPropertiesを選択し、Configuration Properties..VC++ Directoriesを選択します。下のスクリーンショットの太字のテキストの2つの部分を参照してください)。 enter image description here
  15. foreachループのサポートを追加して、ブーストの威力を発揮する簡単なプログラムを実行してみましょう。

    // Source code below copied from:   
    // http://www.boost.org/doc/libs/1_53_0/doc/html/foreach.html
    #include "stdafx.h"
    
    #include <string>
    #include <iostream>
    #include <conio.h> // Supports _getch()
    #include <boost/foreach.hpp>
    
    int main()
    {
        std::string hello( "Hello, world!" );
    
        BOOST_FOREACH( char ch, hello )
        {
            std::cout << ch;
        }
    
        _getch();
        return 0;
    }
    
  16. 結果:

    Hello, world!
    

その他の回答

更新2016-05-05

Win10 x64 + VS2015.2 + Boost v1.6.0で確認しました。

39
Contango

bootstrap.bat

bjam.exe --toolset = msvc-11

8
Gank

次のコマンドの出力を確認して、インストールが正しいことを確認します。

C:\>echo %VS110COMNTOOLS%
C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools\

ブートストラップ時の警告を取り除くために従うべきいくつかの簡単な手順を次に示します。 http://landoftheninja.blogspot.com/2011/11/visual-c-11-and-boost.html

自動リンクに関する彼のフォローアップ記事をお見逃しなく。

5
GhostlyGhost

上記の回答に加えて、MSVC 10/11/12でブーストバージョンを作成する場合、 BlueGo が非常に役立ちます。異なる構成を選択してビルドを選択するだけで、それがうまくいきます。

0
Asterisk14

vs2012エラー:VS Common Toolsフォルダーの場所を特定できません。

vcvarsall.batは、「C:\ windows\system32 \」にある「reg.exe」を呼び出す必要があります。検索パスにない場合、このエラーが発生します。

C:\ windows\system32を%PATH%に追加すると、問題が解決します。

0
user610827