Chciałbym korzystać z biblioteki cpp-netlib dla projektu C++. Dlatego zainstalowałem bibliotekę boost przy pomocy homebrew (OS to Mac OS X 10.8). Następnie ściągnąłem cpp-netlib ze strony domowej projektów, użyłem cmake do stworzenia Makefile dla g ++ i z powodzeniem zastosowałem make. "make test" przeszedł wszystkie testy. Następnie skopiowałem folder include cpp-netlib do katalogu boost.Jak połączyć się z cpp-netlib
Tak oto, kiedy zaczął się problem: Próbowałem skompilować pierwszy przykład dokumentacji http-client, ale nie udało mi się go uruchomić. Kiedy użyłem
g++ test.cpp -o out -I/usr/local/Cellar/boost/1.53.0/include
-L/usr/local/Cellar/boost/1.53.0/lib
-lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt
dostałam te błędy linkera:
Undefined symbols for architecture x86_64:
"boost::network::uri::detail::parse(__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::network::uri::detail::uri_parts<__gnu_cxx::__normal_iterator<char const*, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)", referenced from:
boost::network::uri::uri::parse() in ccs87Dq3.o
"boost::network::http::impl::normal_delegate::normal_delegate(boost::asio::io_service&)", referenced from:
boost::network::http::impl::connection_delegate_factory<boost::network::http::tags::http_async_8bit_udp_resolve>::new_connection_delegate(boost::asio::io_service&, bool, boost::optional<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::optional<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >)in ccs87Dq3.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Naprawdę użył funkcji wyszukiwania, ale nie mogłem znaleźć żadnego rozwiązania mojego problemu. Co ja robię źle?
Wielkie dzięki!
dzięki Wam przykład wreszcie działa! na wypadek, gdyby ktoś miał ten sam problem: oto linia, która (po skompilowaniu dodatkowych bibliotek) w końcu mi pomogła: g ++ test.cpp -o out -I/usr/local/Cellar/boost/1.53. 0/include -L/usr/local/Cellar/boost/1.53.0/lib -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt -lcppnetlib-client-connections -lcppnetlib-uri -lcppnetlib-server-parsers -lssl - lcrypto – user1462040