29/10/16 8:26
a_butta
Ciao a tutti.
Anche se con gran fatica, son riuscito alla fine ad installare la libreria cURL attraverso MSYS64.
cURL, di per sé, funziona: se lo avvio da linea di comando e testo l'acquisizione del sito google.com ricevo la pagina HTML.
Ora il problema è implementarlo nel mio programma (C++): uso eclipse (compilatore MinGW) e sto cercando di testare un semplicissimo GET. Per il collegamento con il compilatore ho seguito e istruzioni sul web e sfruttato il comando curl-config:
Sono andato sotto le opzioni Build->Settings:
In GCC C++ Compiler->Includes e GCC C Compiler->Includes ho aggiunto il primo collegamento (ho usato un path assoluto: /msys64/usr/local/…). Sotto l'opzione MinGW C++ Linker->Miscellaneous, nel Linker flags ho copiato la risposta al secondo comando (sempre con path assoluto: -/msys64/usr/local/… -lcurl -lwldap32 -lz -lws2_32.
Sono dunque andato a prendere il file di esempio più semplice, trovato nel pacchetto curl:
Ho modificato soltanto la stampa a video sostituendo ad uno fprintf il std::cout con conversione da char* a std::string.
Fatto il Build nessun tipo di errore: Tutto ok
Avvio il programma: termina l'avvio ed esce con exit value:-1.073.741. Cioé, non mi da ALCUN TIPO DI ERRORE ma non esegue il pezzo di codice per intero (per intenderci non arriva al return 0 del main).
Stessa identica cosa in modalità Debug: non riesco ad effettuarlo perchè il programma esce prima che possa interrompersi nel main (sembra quasi che non riesca proprio ad entrarci).
Sono alquanto incredulo... Qualche suggerimento?
Ringrazio anticipatamente
Anche se con gran fatica, son riuscito alla fine ad installare la libreria cURL attraverso MSYS64.
cURL, di per sé, funziona: se lo avvio da linea di comando e testo l'acquisizione del sito google.com ricevo la pagina HTML.
Ora il problema è implementarlo nel mio programma (C++): uso eclipse (compilatore MinGW) e sto cercando di testare un semplicissimo GET. Per il collegamento con il compilatore ho seguito e istruzioni sul web e sfruttato il comando curl-config:
curl-config --cflags -I/usr/local/include curl-config --libs -L/usr/local/lib -lcurl -lwldap32 -lz -lws2_32
Sono andato sotto le opzioni Build->Settings:
In GCC C++ Compiler->Includes e GCC C Compiler->Includes ho aggiunto il primo collegamento (ho usato un path assoluto: /msys64/usr/local/…). Sotto l'opzione MinGW C++ Linker->Miscellaneous, nel Linker flags ho copiato la risposta al secondo comando (sempre con path assoluto: -/msys64/usr/local/… -lcurl -lwldap32 -lz -lws2_32.
Sono dunque andato a prendere il file di esempio più semplice, trovato nel pacchetto curl:
int main() { CURL *curl; CURLcode res; curl = curl_easy_init(); if(curl) { curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com/"); res = curl_easy_perform(curl); if(CURLE_OK == res) { char *ct; /* ask for the content-type */ res = curl_easy_getinfo(curl, CURLINFO_CONTENT_TYPE, &ct); if((CURLE_OK == res) && ct) cout << std::string(ct); } /* always cleanup */ curl_easy_cleanup(curl); } return 0; }
Ho modificato soltanto la stampa a video sostituendo ad uno fprintf il std::cout con conversione da char* a std::string.
Fatto il Build nessun tipo di errore: Tutto ok
Avvio il programma: termina l'avvio ed esce con exit value:-1.073.741. Cioé, non mi da ALCUN TIPO DI ERRORE ma non esegue il pezzo di codice per intero (per intenderci non arriva al return 0 del main).
Stessa identica cosa in modalità Debug: non riesco ad effettuarlo perchè il programma esce prima che possa interrompersi nel main (sembra quasi che non riesca proprio ad entrarci).
Sono alquanto incredulo... Qualche suggerimento?
Ringrazio anticipatamente
Ultima modifica effettuata da a_butta 29/10/16 8:34
aaa