2017-03-08 14 views
1

Visual Studio 2013でブースト1.52ライブラリファイルをコンパイルしようとしています。これを行うには、Visual Studioプロンプトコマンドを使用してファイルb2を実行します。ブーストライブラリファイルの生成

すべて正常に動作しているようです。しかし、私が/ stage/lib /に入っているlibファイルには、VCのバージョンはありません。例えば、私は

libboost_date_time-vc-mt-1_52.lib 

私の動的ライブラリは、私はvc110でVCをsubstituingことにより、すべてのファイルの名前を変更すると、それが魅力のように動作しますが、それは非常に気難しいプロセスである

libboost_date_time-vc110-mt-1_52.lib 

を必要としています。

私はいくつかの研究を行い、VSのバージョンに関してBoostのバージョンを制御できることが分かりました。私は次のコマンドを試しました

b2 toolset=msvc-12.0 

まだ、私はまだ無バージョンのファイルを取得します。

どうすればいいですか?ありがとう。

+0

さらに最新バージョンのブーストを試しましたか?私はVS2015に対して 'toolset = msvc-14.0'オプションを使用して1.60を使用しており、生成されるファイルは' libboost_date_time-vc140-mt-1_60.lib'です。 – jpo38

+0

Boost 1.60は私に他の問題を引き起こしています。これはジョブを実行するバージョンです。過去には、私は1.52のブーストで正しいファイルを得ることができましたが、私はboostファイルを生成しませんでした。 とにかく、私はboostバージョンを無視したバージョン番号でlibファイルを生成するためにboostを期待します。 – Canardini

+0

'バージョン番号を無視してlibファイルを生成するためのboostを期待しています.' ... exepct 1.52から1.60の間でリリースされていれば... – jpo38

答えて

2

boost 1.52が2012年にリリースされました。現時点では、Visual Studio 2013は既存のコンパイラではありませんでした。

公式にサポートされていないコンパイラを使用してライブラリをコンパイルしています。あなたは実際にはVisual Studio 2013でコンパイルされた1.52を高めることもできて幸運です。

b2がライブラリ名にvc110を追加できないことは驚くことではありません。どの "サポートされている"コンパイラのバージョン名を持つboost buildシステムコンフィギュレーションファイルのどこかにはcase文があるかもしれません。そこにはvc110がないかもしれません...

あなたは最初のブーストVisual Studio 2013をサポートするバージョン、またはVisual Studio 2010コンパイラ(1.52でサポートされています)を使用するか、または手動で名前を変更します。

ちなみに、ライブラリの名前を変更すると、それを使用する予定がある場合に自動リンクが失敗することに注意してください。 boost\config\auto_link.hppを参照してください。これは明示的にすべてのコンパイラのバージョンを処理します....正式にサポートされているコンパイラでのみ動作します。

+0

意味がある(+1) – Canardini