Puoi provare a usare curl-config --libs
.
Le inclusioni del tuo file di intestazione vanno bene; il tuo problema si verifica nella fase di collegamento. Per collegarti a libcurl, devi aggiungere -lcurl
opzione della riga di comando, supponendo che sia installata in una directory standard:
g++ -o sms ./src/sms.o -lcurl
Se non è installato in una directory standard, devi aggiungere anche -L/path/to/libcurl
, per esempio. qualcosa come:
# Assuming that /home/geekman/workspace/libcurl is where libcurl.a is located
g++ -o sms ./src/sms.o -L/home/geekman/workspace/libcurl -lcurl
Si noti inoltre che il -lcurl
l'opzione deve apparire dopo l'elenco dei file oggetto che stai collegando, altrimenti non si collegherà correttamente.
Chiunque stia usando ecplise CDT, allora devi fare quanto segue. Prima sul terminale invio
curl-config --libs
Sulla mia macchina, il risultato è
-L/usr/lib/i386-linux-gnu -lcurl
quindi fai secondo questo screenshot e sarai in grado di compilare. btw, non dimenticare di aggiungere i file di intestazione nel tuo codice
Quindi inserisci il percorso della cartella della libreria senza -L e il nome della libreria senza -l perché verranno aggiunti automaticamente dal linker.
Una risposta alternativa (la prima è eccellente). Prendi in considerazione l'utilizzo dell'output restituito da "pkg-config --libs libcurl" come argomento per il tuo compilatore.
Ad esempio,
CPPFLAGS=`pkg-config --libs libcurl`
g++ $CPPFLAGS miofile.o
Pkg-config è un modo standard per le librerie open source di comunicarti come collegarsi a loro / #include i loro file.