Boost リンカー エラー: 未解決の外部シンボル「class boost::system::error_category const & __cdecl boost::system::get_system_category(void)」 質問する

Boost リンカー エラー: 未解決の外部シンボル「class boost::system::error_category const & __cdecl boost::system::get_system_category(void)」 質問する

私は初めて Boost を使い始めたばかりです。詳細:

  1. Visual Studio 2008 SP1を使用しています
  2. x64ビルドをやっています
  3. 私は boost::asio のみを使用しています(そしてそれが持つ依存関係も)

コードはコンパイルされるようになり、プロジェクトを boost ライブラリ (x64 ライブラリをビルドした後) に指定して簡単な問題を解決しましたが、今度はリンカー エラーが発生しています。

2>BaseWebServer.obj : error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::get_system_category(void)" (?get_system_category@system@boost@@YAAEBVerror_category@12@XZ)
2>BaseWebServer.obj : error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::get_generic_category(void)" (?get_generic_category@system@boost@@YAAEBVerror_category@12@XZ)

何か案は?


この定義を追加しました: #define BOOST_LIB_DIAGNOSTIC

そして今、出力には次のように表示されます:

1>Linking to lib file: libboost_system-vc90-mt-1_38.lib
1>Linking to lib file: libboost_date_time-vc90-mt-1_38.lib
1>Linking to lib file: libboost_regex-vc90-mt-1_38.lib

これは、実際にはシステム ライブラリにリンクされていることを示しているようです。

ベストアンサー1

問題を解決しました。64 ビット ライブラリをビルドするつもりでしたが、32 ビット ライブラリをビルドしてしまいました。ビルド ステートメントを修正し、64 ビット ライブラリをビルドしたら、動作するようになりました。

これが私の bjam コマンドラインです:

C:\Program Files (x86)\boost\boost_1_38>bjam --build-dir=c:\boost --build-type=complete --toolset=msvc-9.0 address-model=64 architecture=x86 --with-system

おすすめ記事