1

初めてブースト v. 1.53 をビルドしようとしていますが、次のエラー メッセージが表示されます。

エラー 1 エラー LNK1104: ファイル 'libboost_date_time-vc110-mt-gd-1_53.lib' を開けません C:\Users\ryant_000\documents\visual studio 2012\Projects\Phase 2\Phase 2\LINK Phase 2

インクルード ディレクトリに C:....\boost_1_53_0 があり、リンカー メニューの追加の依存関係に C:...\boost_1_53_0\stage\lib があります。

ドキュメントを精査した後に見つからない、リンクするために欠落しているファイルは何ですか?

どうもありがとう。

4

2 に答える 2

8

魅力的で、ヘッダーのみのコレクションであるという主張にもかかわらず、boost には、使用するためにライブラリに組み込む必要がある部分がいくつかあります。これらのライブラリの 1 つがdate_time. Boost は、コンパイラ オプションに基づいて、ライブラリを作成.libするときに正しいファイルを自動的にリンクするという意味で使いやすいです。#include注意点は、最初にライブラリをビルドしておく必要があるということです。

欠落しているファイルは、命名規則libboost_date_time-vc110-mt-gd-1_53.libからわかるように、VC11 用のデバッグ ランタイムを使用したマルチスレッドのデバッグ バージョンです (これは、あなたと私にとっては Visual C++ 2012 です)。特定のバージョンのライブラリをビルドしていない可能性があります。デフォルトでは、boost は最小限のビルドを実行し、ライブラリのいくつかのバージョンをスキップします。少し時間がかかりますが、Boost ですべてを構築するのは良いことだと思います...ねえ、ハード ドライブの容量は安いです!

Visual Studio コマンド プロンプトを開き、boost ディレクトリに移動します。

C:\> cd boost_1_53_0
C:\boost_1_53_0\> bootstrap.bat vc11
C:\boost_1_53_0\> .\b2 --build-type=complete toolset=vc11
... now go and make yourself a cup of tea

少し時間がかかりますが、すべてのライブラリのすべての組み合わせを構築する必要があります。たとえば、一度に 4 つのものをビルドするコマンド ラインに-j4追加することで、マルチコア マシンで少し高速化できます。.\b2

このvc11部分は、使用するツールセットを定義します。これは、コンパイラが 2 つある場合に便利です。理論的には必要ありません (boost は正しいツールセットを見つけるのに適しています)。

これが問題であることをテストしたい場合は、代わりに不足している date_time ライブラリのすべての組み合わせをビルドするように指定できます。

C:\boost_1_53_0\> .\b2 --build-type=complete toolset=vc11 --with-date_time
... now go and make yourself a cold drink, this won't take so long
于 2013-04-25T16:46:49.817 に答える
1

boost フォルダー (ダウンロードして解凍したもの) 内の以下のファイルの内容を変更します。

フォルダー : boost_1_54_0\tools\build\v2\tools ファイル: 1. msvc.jam

内容変更:

32 ビットの場合: toolset.flags msvc LINKFLAGS コンソール: /subsystem:console,5.01 ;

64 ビットの場合: toolset.flags msvc LINKFLAGS console : /subsystem:console,5.02 ;

  1. msvc.pycontent の変更: 32 ビット用: toolset.flags('msvc', 'LINKFLAGS', ['console'], ['/subsystem:console,5.01'])

64 ビットの場合: toolset.flags('msvc', 'LINKFLAGS', ['console'], ['/subsystem:console,5.02']) フォルダー: boost_1_54_0\tools\build\v2\engine ファイル: 1. ビルドします。バット コンテンツの変更: 32 ビット/64 ビットの場合: 1. Visual Studio のパスを "%ProgramFiles%" の代わりに正確に修正 - %ProgramFiles(x86)% に変更

   2.   Add " /D _USING_V110_SDK71_ " to BOOST_JAM_CC =cl command before Skip_VC11Open vs2012 developer Command prompt and type the following commands

** インストールに従って 7.1A SDK パスを更新します

「%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat」を呼び出します

セット INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%

set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%

設定 LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%

ブートストラップ

OS タイプ (32/64 ビット) に従ってコマンドを選択します。

32 ビットの場合:

b2 ツールセット = msvc-11.0 バリアント = デバッグ、リリース リンク = 共有ランタイム リンク = 共有アドレス モデル = 32

64 ビットの場合:

b2 ツールセット = msvc-11.0 バリアント = デバッグ、リリース リンク = 共有ランタイム リンク = 共有アドレス モデル = 64

リリース バージョンとデバッグ バージョンのサンプルをコンパイルするには、次の手順に従います。

vs2012 開発者コマンド プロンプトを開き、次のコマンドを入力します。

「%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin\vcvars32.bat」を呼び出します

セット INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%

set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%

設定 LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%

サンプルのディレクトリに移動します: 例: boost_1_54_0\libs\test\tools\console_test_runner

次のコマンドを入力します

\boost_1_54_0\bjam.exe --v2 toolset=msvc-11.0 variant=debug,release link=shared threading=multi runtime-link=shared

于 2013-10-23T06:59:03.083 に答える