2012-07-02 9 views
5

Próbuję zbudować małą linię poleceń klienta BitTorrent przy użyciu libtorrenta, który zależy od Boost . I został zbudowany zarówno z biblioteki Boost i libtorrent bibliotekę przy użyciu ich odpowiednich kierunkach, ale gdy próbuję zbudować mojego projektu otrzymuję następujące błędy łącząceVS2010 Nierozwiązane zwiększenie liczby symboli :: asio :: detail :: winsock_init_base :: throw_on_error podczas łączenia boost-systemu z projektem używającym libtorrenta

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]@@YAABVe[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]) 

To wydaje się wskazywać, że asio :: detal nazw didn W bibliotekę systemu doładowania znajduje się tylko to, że wydaje się, że ma tylko 5 tych symboli, a poza tym w ten sposób łączy się z biblioteką systemu doładowania. Próbuję zbudować 32-bitową aplikację w systemie 64-bitowym, ale wszystko, co sprawdziłem, jest poprawnie skonfigurowane.

Wiem, że czegoś brakuje, ale nie mogę się domyślić, co. Czy ktoś ma jakieś sugestie?

+0

Spróbuj zdefiniować BOOST_ASIO_SEPARATE_COMPILATION –

+0

Próbowałem zarówno BOOST_ASIO_SEPARATE_COMPILATION, jak i BOOST_ASIO_DYN_LINK i żadna z nich nie działa. jedyną różnicą jest to, że błędy zawierają __declspec (dllimport) przed definicjami funkcji, gdy używany jest dyn_link. –

+0

Jak zbudowałeś bibliotekę libtorrent? której wersji libtorrent używasz? wygląda na to, że nie łączysz się z biblioteką boost.asio, która powinna być zbudowana jako część libtorrent, w src/asio.cpp – Arvid

Odpowiedz

3

Po zdefiniowaniu BOOST_ASIO_SEPARATE_COMPILATION, oprócz #include "boost/asio/ssl/impl/src.hpp", musisz również #include "boost/asio/impl/src.hpp" w jednym z plików cpp.

+0

Miałem ten sam lub podobny problem i zadziałało. Dzięki –

Powiązane problemy