Ich möchte die Bibliothek cpp-netlib für ein C++ Projekt verwenden. Daher habe ich die Boost-Bibliothek mit Hilfe von Homebrew installiert (OS ist Mac OS X 10.8). Dann habe ich cpp-netlib von der Projekthomepage heruntergeladen, cmake verwendet, um das Makefile für g ++ zu erstellen, und erfolgreich make angewendet. "make test" bestanden alle seine Tests. Dann habe ich den Include-Ordner von cpp-netlib in das boost-Verzeichnis kopiert.Wie verlinkt man gegen cpp-netlib
Also hier ist, wenn der Fehler begann: Ich habe versucht, die erste Beispiel http-client der Dokumentation zu kompilieren, konnte es aber nicht zum Laufen bringen. Als ich
verwendetg++ 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
erhielt ich diese Linkerfehler:
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
habe ich wirklich die Funktion Suche, aber ich konnte keine Lösung für mein Problem finden. Was mache ich falsch?
Vielen Dank!
dank dir funktioniert das beispiel jetzt endlich! falls jemand das selbe Problem hat: hier ist die Zeile, die (nach dem Kompilieren der zusätzlichen Bibliotheken) endlich den Trick für mich gemacht hat: g ++ test.cpp -o aus -I/usr/local/Keller/boost/1.53. 0/include -L/usr/local/Keller/boost/1.53.0/lib -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt -lcppnetlib-klient-verbindungen -lcppnetlib-uri -lcppnetlib-server-parser -lssl - lcrpto – user1462040