2012-07-02 16 views
5

का उपयोग करके प्रोजेक्ट के साथ बूस्ट-सिस्टम को जोड़ने पर मैं रास्टरबार के libtorrent का उपयोग कर एक छोटी कमांड लाइन बिटटोरेंट क्लाइंट बनाने की कोशिश कर रहा हूं, जो बूस्ट पर निर्भर करता है । मैं उनके संबंधित दिशानिर्देशों का उपयोग करके दोनों बूस्ट पुस्तकालयों और libtorrent पुस्तकालय का निर्माण किया है, लेकिन जब मैं अपने प्रोजेक्ट बनाने की कोशिश मैं निम्नलिखित जोड़ने त्रुटियोंवीएस -2010 अनसुलझा बाहरी प्रतीक बूस्ट :: 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]) 

यह इंगित करता है कि asio :: विस्तार नाम स्थान didn बूस्ट-सिस्टम लाइब्रेरी में शामिल नहीं किया जाएगा क्योंकि यह केवल 5 प्रतीकों है जिसमें ऐसा लगता है कि यह समस्या है और यह बूस्ट-सिस्टम लाइब्रेरी से जुड़ा हुआ है अन्यथा ठीक है। मैं 64-बिट सिस्टम पर 32-बिट अनुप्रयोग बनाने की कोशिश कर रहा हूं, लेकिन मैंने जो कुछ भी चेक किया है, वह इसके लिए सही तरीके से कॉन्फ़िगर किया गया है।

मुझे पता है कि मुझे कुछ याद आ रहा है, लेकिन मुझे यह पता लगाना प्रतीत नहीं होता है। क्या किसी के पास कोई सुझाव है?

+0

BOOST_ASIO_SEPARATE_COMPILATION –

+0

को परिभाषित करने का प्रयास करें मैंने BOOST_ASIO_SEPARATE_COMPILATION और BOOST_ASIO_DYN_LINK दोनों को आजमाया है और न ही काम किया है। केवल अंतर यह है कि त्रुटियों में dyn_link का उपयोग होने पर फ़ंक्शन परिभाषाओं के सामने __declspec (dllimport) शामिल होता है। –

+0

आपने libtorrent कैसे बनाया? क्या आप libtorrent का संस्करण उपयोग कर रहे हैं? ऐसा प्रतीत होता है कि आप boost.asio लाइब्रेरी के खिलाफ लिंक नहीं कर रहे हैं, जिसे libtorrent के हिस्से के रूप में बनाया जाना चाहिए था, src/asio.cpp – Arvid

उत्तर

3

BOOST_ASIO_SEPARATE_COMPILATION के साथ, परिभाषित अलावा # शामिल करने के लिए "को बढ़ावा देने के/asio/ssl/impl/src.hpp", आप भी # शामिल अपने cpp फ़ाइलों में से एक में "/ asio/impl/src.hpp को बढ़ावा देने के" चाहिए।

+0

में मेरे पास समान या समान समस्या थी और यह काम करता था। धन्यवाद –

संबंधित मुद्दे