で
。
このプロジェクトをスタティックライブラリに変換し、このスタティックライブラリに依存する新しいプロジェクトを作成することにしました。
私の変換された静的ライブラリはエラーと警告(コンパイラとリンカー)なしでビルド しかし、新しいプロジェクトはコンパイルされますがリンクされません。私はこのライブラリのリンカオプションに完全なディレクトリ・パスを追加試験として
1>LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-1_45.lib'
...そしてそれはおよそ
1>LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_45.lib'
私が今追加した訴え:
私は取得していますすべてのライブラリへの完全なパスが作成され、実行されます。
ので、私は、このソリューションで満足していない:私は に、ライブラリのユーザーを望んでいない
- は ブーストにリンクを心配する必要があります。
- それは
厄介である私は、答えはDLLを作成することです知っているが、静的にこれを行うと、私の静的ライブラリレベルでのリンクを維持する方法があります。
編集:
私はブーストLIBSを無視する.exeのリンカを伝える場合は.exeファイルがすべてでブーストを心配する必要はありません除いて、明示的にそれはすべてOKです。
/NODEFAULTLIB:"libboost_thread-vc100-mt-1_45.lib" /NODEFAULTLIB:"libboost_date_time-vc100-mt-1_45.lib"
この回答はOKソリューションにつながりました。私はBOOST_ALL_NO_LIBを定義し、手動でスタティックブーストライブラリをライブラリアンに追加しました。私の.exeプロジェクトでは、BOOSTについての知識は必要ありません。自動的なBOOSTリンクがDefaultLibsを伝えるように思われるのは残念です。 – T33C
'Boost.Thread'の特別な注意事項' BOOST_THREAD_USE_LIB'オプションを使う必要があるかもしれません。 http://shoddykid.blogspot.in/2008/07/getting-started-with-boost.htmlを参照してください。 –
私は同じ問題を抱えています...私はプリプロセッサBOOST_ALL_NO_LIBを使って解決しました。ブーストlibsのディレクトリを開き、リンカ - >入力 - >付随依存関係に唯一使用されているライブラリを追加します。 デフォルトでは、boostヘッダはヘッダにlibsの名前をマウントします。これはプリプロセッサBOOST_LIB_DIAGNOSTICを使って確認できます。 –