Are you linking the curlpp library when you compile?
On Tuesday, December 8, 2009 4:19:17 PM UTC-8, emoreno wrote:
>
> Hi, I'm new to using libcurl and curlpp, and after installing both of
> them I try to compile the first example on the curlpp folder and it
> brings out this errors.
>
> /tmp/ccrujmu4.o: In function `main':
> prueba.cpp:(.text+0x8c): undefined reference to
> `curlpp::Cleanup::Cleanup()'
> prueba.cpp:(.text+0x97): undefined reference to `curlpp::Easy::Easy()'
> prueba.cpp:(.text+0x110): undefined reference to `curlpp::Easy::perform
> ()'
> prueba.cpp:(.text+0x13c): undefined reference to `curlpp::Easy::~Easy
> ()'
> prueba.cpp:(.text+0x155): undefined reference to `curlpp::Easy::~Easy
> ()'
> prueba.cpp:(.text+0x168): undefined reference to
> `curlpp::Cleanup::~Cleanup()'
> prueba.cpp:(.text+0x184): undefined reference to
> `curlpp::Cleanup::~Cleanup()'
> /tmp/ccrujmu4.o: In function `void
> curlpp::internal::CurlHandle::option<void*>(CURLoption, void*)':
> prueba.cpp:
> (.text._ZN6curlpp8internal10CurlHandle6optionIPvEEv10CURLoptionT_[void
> curlpp::internal::CurlHandle::option<void*>(CURLoption, void*)]+0x1e):
> undefined reference to `curl_easy_setopt'
> prueba.cpp:
> (.text._ZN6curlpp8internal10CurlHandle6optionIPvEEv10CURLoptionT_[void
> curlpp::internal::CurlHandle::option<void*>(CURLoption, void*)]+0x36):
> undefined reference to `curlpp::libcurlRuntimeAssert(char const*,
> CURLcode)'
> /tmp/ccrujmu4.o: In function
> `curlpp::OptionTrait<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, (CURLoption)10002>::updateHandleToMe
> (curlpp::internal::CurlHandle*) const':
> prueba.cpp:
> (.text._ZNK6curlpp11OptionTraitISsL10CURLoption10002EE16updateHandleToMeEPNS_8internal10CurlHandleE
>
>
> [curlpp::OptionTrait<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, (CURLoption)10002>::updateHandleToMe
> (curlpp::internal::CurlHandle*) const]+0x57): undefined reference to
> `curlpp::UnsetOption::UnsetOption(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/ccrujmu4.o:(.gcc_except_table+0x120): undefined reference to
> `typeinfo for curlpp::RuntimeError'
> /tmp/ccrujmu4.o:(.gcc_except_table+0x124): undefined reference to
> `typeinfo for curlpp::LogicError'
> /tmp/ccrujmu4.o: In function `curlpp::UnsetOption::~UnsetOption()':
> prueba.cpp:(.text._ZN6curlpp11UnsetOptionD1Ev
> [curlpp::UnsetOption::~UnsetOption()]+0x17): undefined reference to
> `curlpp::RuntimeError::~RuntimeError()'
> /tmp/ccrujmu4.o: In function `curlpp::UnsetOption::~UnsetOption()':
> prueba.cpp:(.text._ZN6curlpp11UnsetOptionD0Ev
> [curlpp::UnsetOption::~UnsetOption()]+0x17): undefined reference to
> `curlpp::RuntimeError::~RuntimeError()'
> /tmp/ccrujmu4.o: In function `curlpp::Option<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::getValue() const':
> prueba.cpp:(.text._ZNK6curlpp6OptionISsE8getValueEv
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::getValue() const]+0x57): undefined reference
> to `curlpp::UnsetOption::UnsetOption(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)'
> /tmp/ccrujmu4.o: In function `curlpp::Option<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::updateMeToOption
> (curlpp::OptionBase const&)':
> prueba.cpp:
> (.text._ZN6curlpp6OptionISsE16updateMeToOptionERKNS_10OptionBaseE
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::updateMeToOption(curlpp::OptionBase const&)]
> +0x2a): undefined reference to `typeinfo for curlpp::OptionBase'
> prueba.cpp:
> (.text._ZN6curlpp6OptionISsE16updateMeToOptionERKNS_10OptionBaseE
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::updateMeToOption(curlpp::OptionBase const&)]
> +0x66): undefined reference to `curlpp::UnsetOption::UnsetOption(char
> const*)'
> /tmp/ccrujmu4.o: In function `curlpp::Option<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::~Option()':
> prueba.cpp:(.text._ZN6curlpp6OptionISsED2Ev
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::~Option()]+0x4d): undefined reference to
> `curlpp::OptionBase::~OptionBase()'
> prueba.cpp:(.text._ZN6curlpp6OptionISsED2Ev
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::~Option()]+0x66): undefined reference to
> `curlpp::OptionBase::~OptionBase()'
> /tmp/ccrujmu4.o: In function `curlpp::Option<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::~Option()':
> prueba.cpp:(.text._ZN6curlpp6OptionISsED0Ev
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::~Option()]+0x4d): undefined reference to
> `curlpp::OptionBase::~OptionBase()'
> prueba.cpp:(.text._ZN6curlpp6OptionISsED0Ev
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::~Option()]+0x66): undefined reference to
> `curlpp::OptionBase::~OptionBase()'
> /tmp/ccrujmu4.o: In function `curlpp::Option<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::~Option()':
> prueba.cpp:(.text._ZN6curlpp6OptionISsED1Ev
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::~Option()]+0x4d): undefined reference to
> `curlpp::OptionBase::~OptionBase()'
> /tmp/ccrujmu4.o:prueba.cpp:(.text._ZN6curlpp6OptionISsED1Ev
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::~Option()]+0x66): more undefined references
> to `curlpp::OptionBase::~OptionBase()' follow
> /tmp/ccrujmu4.o: In function `curlpp::Option<std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > >::Option(CURLoption,
> std::basic_string<char, std::char_traits<char>, std::allocator<char> >
> const&)':
> prueba.cpp:(.text._ZN6curlpp6OptionISsEC2E10CURLoptionRKSs
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::Option(CURLoption, std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)]+0x15):
> undefined reference to `curlpp::OptionBase::OptionBase(CURLoption)'
> prueba.cpp:(.text._ZN6curlpp6OptionISsEC2E10CURLoptionRKSs
> [curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >::Option(CURLoption, std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)]+0x4e):
> undefined reference to `curlpp::OptionBase::~OptionBase()'
> /tmp/ccrujmu4.o:
> (.rodata._ZTVN6curlpp11OptionTraitISsL10CURLoption10002EEE[vtable for
> curlpp::OptionTrait<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> >, (CURLoption)10002>]+0x10): undefined reference
> to `curlpp::OptionBase::operator<(curlpp::OptionBase const&) const'
> /tmp/ccrujmu4.o:(.rodata._ZTIN6curlpp6OptionISsEE[typeinfo for
> curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >]+0x8): undefined reference to `typeinfo for
> curlpp::OptionBase'
> /tmp/ccrujmu4.o:(.rodata._ZTIN6curlpp11UnsetOptionE[typeinfo for
> curlpp::UnsetOption]+0x8): undefined reference to `typeinfo for
> curlpp::RuntimeError'
> /tmp/ccrujmu4.o:(.rodata._ZTVN6curlpp6OptionISsEE[vtable for
> curlpp::Option<std::basic_string<char, std::char_traits<char>,
> std::allocator<char> > >]+0x10): undefined reference to
> `curlpp::OptionBase::operator<(curlpp::OptionBase const&) const'
> collect2: ld returned 1 exit status
> *************************************************
>
> The code I'm using is this one:
>
> /**
> * \file
> * The most simple example.
> *
> */
>
> #include <curlpp/cURLpp.hpp>
> #include <curlpp/Easy.hpp>
> #include <curlpp/Options.hpp>
>
>
> using namespace curlpp::options;
>
> int main(int, char **)
> {
> try
> {
> // That's all that is needed to do cleanup of used resources (RAII
> style).
> curlpp::Cleanup myCleanup;
>
> // Our request to be sent.
> curlpp::Easy myRequest;
>
> // Set the URL.
> myRequest.setOpt<Url>("http://www.google.com");
>
> // Send request and get a result.
> // By default the result goes to standard output.
> myRequest.perform();
> }
>
> catch(curlpp::RuntimeError & e)
> {
> std::cout << e.what() << std::endl;
> }
>
> catch(curlpp::LogicError & e)
> {
> std::cout << e.what() << std::endl;
> }
>
> return 0;
> }
>
> **********************************************************
>
> Could anyone please help me, I don't know if I'm missing something or
> doing something wrong.
>
> Thanks in advance
>
--
You received this message because you are subscribed to the Google Groups
"curlpp" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/curlpp.
For more options, visit https://groups.google.com/d/optout.