2012-07-02 10 views
5

私はBoostに依存するRasterbarのlibtorrentを使用して小さなコマンドラインBitTorrentクライアントを構築しようとしています。 ASIO ::詳細名前空間のdidnことを示していると思われるVS2010未解決の外部シンボルboost :: asio :: detail :: winsock_init_base :: throw_on_error libtorrentを使用してプロジェクトにリンクするとき

1>------ Build started: Project: MiniBT, Configuration: Debug Win32 ------ 
1>MiniBT.obj : error LNK2019: unresolved external symbol "protected: static void __cdecl boost::asio::detail::winsock_init_base::throw_on_error(struct boost::asio::detail::winsock_init_base::data &)" ([email protected][email protected]@[email protected]@@[email protected]@@Z) referenced in function "public: __thiscall boost::asio::detail::winsock_init<2,0>::winsock_init<2,0>(bool)" ([email protected][email protected]@[email protected]@[email protected]@[email protected][email protected]) 
1>MiniBT.obj : error LNK2019: unresolved external symbol "protected: static void __cdecl boost::asio::detail::winsock_init_base::startup(struct boost::asio::detail::winsock_init_base::data &,unsigned char,unsigned char)" ([email protected][email protected]@[email protected]@@[email protected]@[email protected]) referenced in function "public: __thiscall boost::asio::detail::winsock_init<2,0>::winsock_init<2,0>(bool)" ([email protected][email protected]@[email protected]@[email protected]@[email protected][email protected]) 
1>MiniBT.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::asio::error::get_misc_category(void)" ([email protected]@[email protected]@@[email protected]@[email protected]) referenced in function "void __cdecl boost::asio::error::`dynamic initializer for 'misc_category''(void)" ([email protected]@[email protected]@@YAXXZ) 
1>MiniBT.obj : error LNK2019: unresolved external symbol "unsigned long __cdecl boost::asio::detail::win_tss_ptr_create(void)" ([email protected]@[email protected]@@YAKXZ) referenced in function "public: __thiscall boost::asio::detail::win_tss_ptr<class boost::asio::detail::call_stack<class boost::asio::detail::win_iocp_io_service,unsigned char>::context>::win_tss_ptr<class boost::asio::detail::call_stack<class boost::asio::detail::win_iocp_io_service,unsigned char>::context>(void)" ([email protected]@[email protected][email protected]@[email protected]@@[email protected]@[email protected]@@@[email protected]@[email protected]@[email protected]) 
1>MiniBT.obj : error LNK2019: unresolved external symbol "protected: static void __cdecl boost::asio::detail::winsock_init_base::cleanup(struct boost::asio::detail::winsock_init_base::data &)" ([email protected][email protected]@[email protected]@@[email protected]@@Z) referenced in function "public: __thiscall boost::asio::detail::winsock_init<2,0>::~winsock_init<2,0>(void)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]) 

を私は彼らのそれぞれの方向を使用してBoostライブラリとlibtorrentライブラリの両方を構築してきましたが、私は私のプロジェクトをビルドしようとすると、私は、次のリンクエラーが出ますブーストシステムライブラリに含まれているのは、それが問題を抱えているような5つのシンボルだけであり、そうでなければブーストシステムライブラリにリンクしているからです。私は64ビットシステム上に32ビットアプリケーションを構築しようとしていますが、確認したことはすべて正しく設定されているようです。

私は何かが欠けていることは知っていますが、何が分かりません。誰にも何か提案はありますか?

+0

BOOST_ASIO_SEPARATE_COMPILATIONを定義してみてください –

+0

私はBOOST_ASIO_SEPARATE_COMPILATIONとBOOST_ASIO_DYN_LINKの両方を試してみましたが、いずれも動作しませんでした。唯一の違いは、dyn_linkが使用されているときに関数定義の前に__declspec(dllimport)が含まれている点です。 –

+0

どのようにしてlibtorrentをビルドしましたか?どのバージョンのlibtorrentを使用していますか? src/asio.cpp – Arvid

答えて

3

BOOST_ASIO_SEPARATE_COMPILATIONが定義されていれば、#include "boost/asio/ssl/impl/src.hpp"に加えて、#include "boost/asio/impl/src.hpp"もcppファイルの1つに含める必要があります。

+0

にlibtorrentの一部として構築されていたはずのboost.asioライブラリとリンクしていないようです。同じ問題か同じ問題がありました。 ありがとう –

関連する問題