Puedes intentar usar curl-config --libs
.
Las inclusiones de su archivo de encabezado están bien; su problema está ocurriendo en el paso de vinculación. Para vincular contra libcurl, debe agregar el -lcurl
opción de línea de comandos, asumiendo que está instalado en un directorio estándar:
g++ -o sms ./src/sms.o -lcurl
Si no está instalado en un directorio estándar, también debe agregar el -L/path/to/libcurl
, p.ej. algo como:
# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl
También tenga en cuenta que el -lcurl
la opción tiene que aparecer después la lista de archivos de objetos que está vinculando; de lo contrario, no se vinculará correctamente.
Cualquiera que esté usando ecplise CDT, entonces debe hacer lo siguiente. Primero en la terminal ingrese
curl-config --libs
En mi máquina, el resultado es
-L/usr/lib/i386-linux-gnu -lcurl
luego hazlo de acuerdo con esta captura de pantalla y podrás compilar. por cierto, no olvide agregar archivos de encabezado en su código
Por lo tanto, ingrese la ruta de la carpeta de la biblioteca sin -L y el nombre de la biblioteca sin -l porque el enlazador los agregará automáticamente.
Una respuesta alternativa (la primera es excelente). Considere usar la salida devuelta por "pkg-config --libs libcurl" como argumento para su compilador.
Por ejemplo,
CPPFLAGS=`pkg-config --libs libcurl`
g++ $CPPFLAGS miarchivo.o
Pkg-config es una forma estándar para que las bibliotecas de código abierto le comuniquen cómo vincularlas / #incluir sus archivos.