Я нашел эту ветку, когда искал способ загрузить URL на мой компьютер: Загрузить файл с помощью libcurl на C / C ++
Я скачал curl для Windows и объединил все3 папки с существующими аналогами в каталоге MinGW: include, lib и bin.
Теперь, когда я компилирую код, я получаю следующие ошибки, которые, как я знаю, связаны с тем, что они не связывают нужные библиотеки,но в приведенной мною ссылке нет достаточной информации о том, что связывать:
obj\Debug\main.o
In function main':
D:\CPP Scrap\curl1\main.cpp:11: undefined reference to __imp__curl_easy_init'
D:\CPP Scrap\curl1\main.cpp:13: undefined reference to __imp__curl_easy_setopt'
D:\CPP Scrap\curl1\main.cpp:14: undefined reference to __imp__curl_easy_perform'
D:\CPP Scrap\curl1\main.cpp:17: undefined reference to __imp__curl_easy_cleanup'
=== Build finished: 4 errors, 0 warnings ===
Это показывает, что заголовок curl/types.h
включен, но я не могу найти его в [последней] версии curl Iскачал, так что я предполагаю, что мне нужно с чем-то связать, вопрос в том, что это?
Код:
#define CURL_STATICLIB
#include <stdio.h>
#include <curl/curl.h>
#include <curl/types.h>
#include <curl/easy.h>
#include <string>
size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
size_t written;
written = fwrite(ptr, size, nmemb, stream);
return written;
}
int main(void) {
CURL *curl;
FILE *fp;
CURLcode res;
char *url = "http://localhost/aaa.txt";
char outfilename[FILENAME_MAX] = "C:\\bbb.txt";
curl = curl_easy_init();
if (curl) {
fp = fopen(outfilename,"wb");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
fclose(fp);
}
return 0;
}