elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C++]Cpr - cURL para humanos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C++]Cpr - cURL para humanos  (Leído 4,101 veces)
Poyoncio

Desconectado Desconectado

Mensajes: 220



Ver Perfil WWW
[C++]Cpr - cURL para humanos
« en: 15 Septiembre 2016, 16:36 pm »

Acabo de encontrar esta maravillosa API inspirada en mi amada requests de python :P
https://github.com/whoshuu/cpr

Y estoy teniendo problemas para utilizarla. Antes de nada decir que yo suelo editar los programas con gedit o SublimeText y compilo con g++.
El problema esta en que nunca e tocado nada de ficheros "make" o algo asi que siempre se sale si usas un entorno como CodeBlocks.

El problema es que no entiendo que tengo que hacer para utilizar esta libreria. Es decir hay una carpeta llamada include, he descargado esa carpeta y puesta en la misma carpeta que mi fichero, y me da siempre errores.
No acabo de entender la documentacion para usar la libreria alguien me podria hechar una mano? :silbar:



Casi nunca he usado librerias externas asi que no tengo ni idea del tema.


« Última modificación: 15 Septiembre 2016, 16:40 pm por Poyoncio » En línea

Curso de ensamblador desde cero
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #1 en: 15 Septiembre 2016, 16:42 pm »

Tienes que agregar parametros de linkeo al compilador esto es:

Código:
g++ -o test test.cpp `curl-config --cflags` `curl-config --libs`

si ejecutas
Código:
curl-config --libs
te deberia de devolver algo -lcurl -L/usr/.....

Eso es lo que falta para incluir el Curl


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #2 en: 15 Septiembre 2016, 16:51 pm »

Sin make, puedes simplemente crear un proyecto con otro IDE (Code::Blocks por ejemplo), meter los archvios cpp y h en él, y compilar.
No debería darte mucho problema. Si te los da, pon por aquí.


Al proyecto puedes meterle directamente tu main. Si quieres tener las librerías como tales, basta que cojas los archvios .o que suele generar el IDE.
En línea

Poyoncio

Desconectado Desconectado

Mensajes: 220



Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #3 en: 15 Septiembre 2016, 17:13 pm »

Tienes que agregar parametros de linkeo al compilador esto es:

Código:
g++ -o test test.cpp `curl-config --cflags` `curl-config --libs`

si ejecutas
Código:
curl-config --libs
te deberia de devolver algo -lcurl -L/usr/.....

Eso es lo que falta para incluir el Curl

Trato de ejecutar lo que me dices y solo me genera errores.
La parte de
Código:
curl-config --libs
me devuelve
bash: curl-config: no se encontró la orden

he hecho un apt-get install curl pero estoy en las mismas.. Lo tengo ya instalado.

Sin make, puedes simplemente crear un proyecto con otro IDE (Code::Blocks por ejemplo), meter los archvios cpp y h en él, y compilar.
No debería darte mucho problema. Si te los da, pon por aquí.


Al proyecto puedes meterle directamente tu main. Si quieres tener las librerías como tales, basta que cojas los archvios .o que suele generar el IDE.
Que es eso de los archivos .o?
He tratado tambien de incluir todas las cabeceras .h sacandolas de la carpeta y ejecutando:
Código
  1. #include "cpr.h"
  2.  
  3. int main(int argc, char** argv) {
  4.    auto r = cpr::Get(cpr::Url{"https://api.github.com/repos/whoshuu/cpr/contributors"},
  5.                      cpr::Authentication{"user", "pass"},
  6.                      cpr::Parameters{{"anon", "true"}, {"key", "value"}});
  7.    r.status_code;                  // 200
  8.    r.header["content-type"];       // application/json; charset=utf-8
  9.    r.text;                         // JSON text string
  10. }
Seguramente sera algo sencillo pero no caigo en que es
e descargado la carpeta de aqui: https://github.com/whoshuu/cpr/tree/master/include/cpr
y me genera un error muy grande,solo pongo el principio, el comando usado es g++ proj.cpp -o proj:
Tambien he probado con el comando de alberto y sigue dando un error similar.








In file included from /usr/include/c++/4.9/future:35:0,
                 from api.h:5,
                 from cpr.h:4,
                 from proj.cpp:2:
/usr/include/c++/4.9/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
 #error This file requires compiler and library support for the \
  ^
In file included from api.h:8:0,
                 from cpr.h:4,
                 from proj.cpp:2:
auth.h:13:28: error: expected ‘,’ or ‘...’ before ‘&&’ token
     Authentication(UserType&& username, PassType&& password)
                            ^
auth.h:17:33: error: expected ‘;’ at end of member declaration
     const char* GetAuthString() const noexcept;
                                 ^
auth.h:17:39: error: ‘noexcept’ does not name a type
     const char* GetAuthString() const noexcept;
                                       ^
auth.h: In constructor ‘cpr::Authentication::Authentication(UserType)’:
auth.h:14:24: warning: extended initializer lists only available with -std=c++11 or -std=gnu++11
             : username_{CPR_FWD(username)}, password_{CPR_FWD(password)},
                        ^
In file included from auth.h:6:0,
                 from api.h:8,
                 from cpr.h:4,
                 from proj.cpp:2:
defines.h:6:22: error: ‘forward’ is not a member of ‘std’
 #define CPR_FWD(...) ::std::forward<decltype(__VA_ARGS__)>(__VA_ARGS__)
                      ^
auth.h:14:25: note: in expansion of macro ‘CPR_FWD’
             : username_{CPR_FWD(username)}, password_{CPR_FWD(password)},
                         ^
auth.h:14:33: error: ‘username’ was not declared in this scope
             : username_{CPR_FWD(username)}, password_{CPR_FWD(password)},
                                 ^
defines.h:6:46: note: in definition of macro ‘CPR_FWD’
 #define CPR_FWD(...) ::std::forward<decltype(__VA_ARGS__)>(__VA_ARGS__)
                                              ^
defines.h:6:57: error: there are no arguments to ‘decltype’ that depend on a template parameter, so a declaration of ‘decltype’ must be available [-fpermissive]
 #define CPR_FWD(...) ::std::forward<decltype(__VA_ARGS__)>(__VA_ARGS__)



« Última modificación: 15 Septiembre 2016, 17:18 pm por Poyoncio » En línea

Curso de ensamblador desde cero
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #4 en: 15 Septiembre 2016, 17:46 pm »

Citar
error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.

Pon "-std=c++11". No sé qué IDE utilizas. En Code::Blocks, irías a "Opciones -> Compilador" y ahí en la lista de checkboxes, marcarías "Have g++ follow the C++11 ISO C++ language standar [-std=c++11]"

Y bueno, "un error muy grande". Lee los errores y fíjate qué dicen xD
Sino, pues eso, postea los siguientes errores.
En línea

Poyoncio

Desconectado Desconectado

Mensajes: 220



Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #5 en: 15 Septiembre 2016, 22:48 pm »

Pon "-std=c++11". No sé qué IDE utilizas. En Code::Blocks, irías a "Opciones -> Compilador" y ahí en la lista de checkboxes, marcarías "Have g++ follow the C++11 ISO C++ language standar [-std=c++11]"

Y bueno, "un error muy grande". Lee los errores y fíjate qué dicen xD
Sino, pues eso, postea los siguientes errores.
Pues hasta ahora solo utilizaba sublime text (y compilaba con g++) porque code::blocks no me acaba de convencer, pero lo he probado alli ahora y le he cambiado lo que comentas y ya "solo" me da 2 errores, a lo de grande me referia a muy largo ;-) que me ocupaba como diez terminales lo que he posteado es un trozito comparado con lo que retornaba :silbar:

voy a seguir investigando un poco, si consigo solucionarlo lo comentare por aqui ;D
este es el mensaje de error que me da ahora, voy a mirarlo durante un rato haber si puedo solucionarlo ;)
Código:
-------------- Build file: "no target" in "no project" (compiler: unknown)---------------
g++ -std=c++11  -c /home/windows-vista/Documentos/C++/dprrrr/cpr/main.cpp -o /home/windows-vista/Documentos/C++/dprrrr/cpr/main.o
g++  -o /home/windows-vista/Documentos/C++/dprrrr/cpr/main /home/windows-vista/Documentos/C++/dprrrr/cpr/main.o  
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `main':
main.cpp:(.text+0x60): referencia a `cpr::Parameters::Parameters(std::initializer_list<cpr::Parameter> const&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `cpr::Response cpr::Get<std::string, cpr::Authentication, cpr::Parameters>(std::string&&, cpr::Authentication&&, cpr::Parameters&&)':
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x23): referencia a `cpr::Session::Session()' sin definir
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x75): referencia a `cpr::Session::Get()' sin definir
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x82): referencia a `cpr::Session::~Session()' sin definir
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x93): referencia a `cpr::Session::~Session()' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::map<std::string, std::string, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::operator[](std::string&&)':
main.cpp:(.text._ZNSt3mapISsSsN3cpr22CaseInsensitiveCompareESaISt4pairIKSsSsEEEixEOSs[_ZNSt3mapISsSsN3cpr22CaseInsensitiveCompareESaISt4pairIKSsSsEEEixEOSs]+0x90): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `void cpr::priv::set_option<std::string>(cpr::Session&, std::string&&)':
main.cpp:(.text._ZN3cpr4priv10set_optionISsEEvRNS_7SessionEOT_[_ZN3cpr4priv10set_optionISsEEvRNS_7SessionEOT_]+0x2a): referencia a `cpr::Session::SetOption(std::string const&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator<std::pair<std::string const, std::string> >, std::string const&)':
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0xa1): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x147): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x202): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x2dd): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x386): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o:main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSA_PSt13_Rb_tree_nodeIS2_E[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSA_PSt13_Rb_tree_nodeIS2_E]+0x5e): más referencias a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir a continuación
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `void cpr::priv::set_option<cpr::Authentication>(cpr::Session&, cpr::Authentication&&)':
main.cpp:(.text._ZN3cpr4priv10set_optionINS_14AuthenticationEEEvRNS_7SessionEOT_[_ZN3cpr4priv10set_optionINS_14AuthenticationEEEvRNS_7SessionEOT_]+0x2a): referencia a `cpr::Session::SetOption(cpr::Authentication const&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `void cpr::priv::set_option<cpr::Parameters>(cpr::Session&, cpr::Parameters&&)':
main.cpp:(.text._ZN3cpr4priv10set_optionINS_10ParametersEEEvRNS_7SessionEOT_[_ZN3cpr4priv10set_optionINS_10ParametersEEEvRNS_7SessionEOT_]+0x2a): referencia a `cpr::Session::SetOption(cpr::Parameters&&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::_M_lower_bound(std::_Rb_tree_node<std::pair<std::string const, std::string> >*, std::_Rb_tree_node<std::pair<std::string const, std::string> >*, std::string const&)':
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1_]+0x38): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::_M_get_insert_unique_pos(std::string const&)':
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_]+0x5c): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_]+0x11b): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
2 error(s), 0 warning(s) (0 minute(s), 1 second(s))
-------------- Build file: "no target" in "no project" (compiler: unknown)---------------
g++ -std=c++11  -c /home/windows-vista/Documentos/C++/dprrrr/cpr/main.cpp -o /home/windows-vista/Documentos/C++/dprrrr/cpr/main.o
g++  -o /home/windows-vista/Documentos/C++/dprrrr/cpr/main /home/windows-vista/Documentos/C++/dprrrr/cpr/main.o  
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `main':
main.cpp:(.text+0x60): referencia a `cpr::Parameters::Parameters(std::initializer_list<cpr::Parameter> const&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `cpr::Response cpr::Get<std::string, cpr::Authentication, cpr::Parameters>(std::string&&, cpr::Authentication&&, cpr::Parameters&&)':
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x23): referencia a `cpr::Session::Session()' sin definir
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x75): referencia a `cpr::Session::Get()' sin definir
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x82): referencia a `cpr::Session::~Session()' sin definir
main.cpp:(.text._ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_[_ZN3cpr3GetIISsNS_14AuthenticationENS_10ParametersEEEENS_8ResponseEDpOT_]+0x93): referencia a `cpr::Session::~Session()' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::map<std::string, std::string, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::operator[](std::string&&)':
main.cpp:(.text._ZNSt3mapISsSsN3cpr22CaseInsensitiveCompareESaISt4pairIKSsSsEEEixEOSs[_ZNSt3mapISsSsN3cpr22CaseInsensitiveCompareESaISt4pairIKSsSsEEEixEOSs]+0x90): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `void cpr::priv::set_option<std::string>(cpr::Session&, std::string&&)':
main.cpp:(.text._ZN3cpr4priv10set_optionISsEEvRNS_7SessionEOT_[_ZN3cpr4priv10set_optionISsEEvRNS_7SessionEOT_]+0x2a): referencia a `cpr::Session::SetOption(std::string const&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::_M_get_insert_hint_unique_pos(std::_Rb_tree_const_iterator<std::pair<std::string const, std::string> >, std::string const&)':
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0xa1): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x147): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x202): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x2dd): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS2_ERS1_]+0x386): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o:main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSA_PSt13_Rb_tree_nodeIS2_E[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSA_PSt13_Rb_tree_nodeIS2_E]+0x5e): más referencias a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir a continuación
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `void cpr::priv::set_option<cpr::Authentication>(cpr::Session&, cpr::Authentication&&)':
main.cpp:(.text._ZN3cpr4priv10set_optionINS_14AuthenticationEEEvRNS_7SessionEOT_[_ZN3cpr4priv10set_optionINS_14AuthenticationEEEvRNS_7SessionEOT_]+0x2a): referencia a `cpr::Session::SetOption(cpr::Authentication const&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `void cpr::priv::set_option<cpr::Parameters>(cpr::Session&, cpr::Parameters&&)':
main.cpp:(.text._ZN3cpr4priv10set_optionINS_10ParametersEEEvRNS_7SessionEOT_[_ZN3cpr4priv10set_optionINS_10ParametersEEEvRNS_7SessionEOT_]+0x2a): referencia a `cpr::Session::SetOption(cpr::Parameters&&)' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::_M_lower_bound(std::_Rb_tree_node<std::pair<std::string const, std::string> >*, std::_Rb_tree_node<std::pair<std::string const, std::string> >*, std::string const&)':
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_ESB_RS1_]+0x38): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
/home/windows-vista/Documentos/C++/dprrrr/cpr/main.o: En la función `std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, cpr::CaseInsensitiveCompare, std::allocator<std::pair<std::string const, std::string> > >::_M_get_insert_unique_pos(std::string const&)':
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_]+0x5c): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
main.cpp:(.text._ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_[_ZNSt8_Rb_treeISsSt4pairIKSsSsESt10_Select1stIS2_EN3cpr22CaseInsensitiveCompareESaIS2_EE24_M_get_insert_unique_posERS1_]+0x11b): referencia a `cpr::CaseInsensitiveCompare::operator()(std::string const&, std::string const&) const' sin definir
collect2: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
2 error(s), 0 warning(s) (0 minute(s), 1 second(s))



Comienzo a pensar que igual no es error de compilador ni nada por el estilo, sino que es algo que falta por meterle al proyecto

PD: Gracias por la paciencia, que dios os vendiga con 14 hijos y 20 mujeres :silbar:

 
« Última modificación: 15 Septiembre 2016, 22:53 pm por Poyoncio » En línea

Curso de ensamblador desde cero
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #6 en: 15 Septiembre 2016, 22:57 pm »

Estás compilando el main solo.
Te decía que hicieras un proyecto, porque Code::Blocks (como casi cualquier IDE) se encarga de ver qué archivos tiene que compilar y en qué orden.

Si quieres utilizar una librería que no está compilada, tienes que compilarla. Para ello, tienes que compilar por separado cada archivo .cpp de la librería. Esas compilaciones, generarán un archivo de código objeto (generalmente .o). Luego, hay que enlazar todos estos archivos .o (incluido el del main) para generar el archivo ejecutable.


Los errores que tienes indican que hay funciones que se nombran, pero cuyo código no se encuentra.
Citar
main.cpp:(.text+0x60): referencia a `cpr::Parameters::Parameters(std::initializer_list<cpr::Parameter> const&)' sin definir
El constructor Parameters se utiliza, pero no está compilado en ningún lugar. Si estuviera el .cpp compilado, encontraría esa función en el .o.

Tienes varias opciones. Una es, crear un proyecto con Code::Blocks, meter todos los archivos, y dejar que se encargue Code::Blocks. La otra, es compilar cada archivo .cpp de la librería.
Para ello, en resumen:
Código:
lib1.cpp, lib2.cpp, main.cpp

g++ -std=c++11 -c lib1.cpp -o lib1.o
g++ -std=c++11 -c lib2.cpp -o lib2.o
g++ -std=c++11 -c main.cpp -o main.o
g++ lib1.o lib2.o main.o -o main.exe
En línea

Poyoncio

Desconectado Desconectado

Mensajes: 220



Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #7 en: 16 Septiembre 2016, 19:27 pm »

Estás compilando el main solo.
Te decía que hicieras un proyecto, porque Code::Blocks (como casi cualquier IDE) se encarga de ver qué archivos tiene que compilar y en qué orden.

Si quieres utilizar una librería que no está compilada, tienes que compilarla. Para ello, tienes que compilar por separado cada archivo .cpp de la librería. Esas compilaciones, generarán un archivo de código objeto (generalmente .o). Luego, hay que enlazar todos estos archivos .o (incluido el del main) para generar el archivo ejecutable.


Los errores que tienes indican que hay funciones que se nombran, pero cuyo código no se encuentra.El constructor Parameters se utiliza, pero no está compilado en ningún lugar. Si estuviera el .cpp compilado, encontraría esa función en el .o.

Tienes varias opciones. Una es, crear un proyecto con Code::Blocks, meter todos los archivos, y dejar que se encargue Code::Blocks. La otra, es compilar cada archivo .cpp de la librería.
Para ello, en resumen:
Código:
lib1.cpp, lib2.cpp, main.cpp

g++ -std=c++11 -c lib1.cpp -o lib1.o
g++ -std=c++11 -c lib2.cpp -o lib2.o
g++ -std=c++11 -c main.cpp -o main.o
g++ lib1.o lib2.o main.o -o main.exe
Pero son ficheros .h....
Lo que he hecho ha sido meter esos ficheros .h en "add file to project" es decir lo meto como si estuviera todo dentro del proyecto y me sigue dando esos errores. No me peges porfavor  :xD pero soy demasiado inutil en estas cosas.......  :(



Tambien estoy pensando en que alomejor tengo que añadir algo de esto, pero esque no entiendo nada de que se tiene que añadir:
http://imgur.com/aTJUNLl


Creo que al final me decantare por curl me estoy ya cansando, un poco de todo este tema... Me hace perder mucho tiempo... y tampoco es plan que me lo tengais que solucionar todo...


Y muchas gracias por tu tiempo
« Última modificación: 16 Septiembre 2016, 20:10 pm por Poyoncio » En línea

Curso de ensamblador desde cero
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: [C++]Cpr - cURL para humanos
« Respuesta #8 en: 16 Septiembre 2016, 22:15 pm »

Los .cpp tambien los tienes que meter al proyecto.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
CURL para actualizar Tuenti (PHP)
Scripting
pato3_3 0 2,215 Último mensaje 2 Febrero 2012, 13:30 pm
por pato3_3
cURL para HTTPS problemas con SSL
PHP
#Aitor 2 4,542 Último mensaje 9 Enero 2014, 21:16 pm
por #Aitor
Web proxy para usar curl con el
PHP
moikano→@ 0 1,678 Último mensaje 21 Abril 2014, 00:03 am
por moikano→@
Hacer cURL en respuesta de cURL para posterior scraping.
PHP
goditozor 3 4,711 Último mensaje 1 Septiembre 2014, 20:32 pm
por WHK
El Pentágono planea probar controles telepáticos en humanos para la defensa ...
Noticias
wolfbcn 3 1,154 Último mensaje 7 Junio 2019, 19:24 pm
por Serapis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines