Здравствуйте, проблема с компиляцией программы на OS Linux Ubuntu, ОС стоит на плате odroid-xu4, с ARM процессором. Библиотеку подключил, ругается только на функции mime, в чём может быть причина? Задача вообще состоит в передаче изображения на сервер. Спасибо за любую помощь в решении данного вопроса.
droid@odroid:~/Desktop/curl_test.2$ g++ -o postit2 postit2.c -lcurl
/tmp/cc4MoKQE.o: In function `main':
postit2.c:(.text+0x2c): undefined reference to `curl_mime_init'
postit2.c:(.text+0x36): undefined reference to `curl_mime_addpart'
postit2.c:(.text+0x48): undefined reference to `curl_mime_name'
postit2.c:(.text+0x56): undefined reference to `curl_mime_filedata'
postit2.c:(.text+0xfa): undefined reference to `curl_mime_free'
collect2: error: ld returned 1 exit status
odroid@odroid:~/Desktop/curl_test.2$ curl --version
curl 7.56.0 (armv7l-unknown-linux-gnueabihf) libcurl/7.47.0
OpenSSL/1.0.2g zlib/1.2.8 libidn/1.32 librtmp/2.3
Release-Date: 2017-10-04
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM
NTLM_WB SSL libz TLS-SRP UnixSockets
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(int argc, char *argv[])
{
CURL *curl;
CURLcode res;
curl_mime *form = NULL;
curl_mimepart *field = NULL;
struct curl_slist *headerlist = NULL;
static const char buf[] = "Expect:";
curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();
if(curl) {
/* Create the form */
form = curl_mime_init(curl);
/* Fill in the file upload field */
field = curl_mime_addpart(form);
curl_mime_init(field, "img.jpeg");
curl_mime_filedata(field, "img.jpeg");
/* Fill in the filename field */
field = curl_mime_addpart(form);
curl_mime_name(field, "img.jpeg");
curl_mime_data(field, "img.jpeg", CURL_ZERO_TERMINATED);
/*Fill in the submit field too, even if this is rarely needed */
field = curl_mime_addpart(form);
curl_mime_name(field, "img.jpeg");
curl_mime_data(field, "img.jpeg", CURL_ZERO_TERMINATED);
/* initialize custom header list (stating that Expect: 100-continue is not
wanted */
headerlist = curl_slist_append(headerlist, buf);
/* what URL that receives this POST */
curl_easy_setopt(curl, CURLOPT_URL, "http://auto-face.meral.com.ua/device.savepoint");
if((argc == 2) && (!strcmp(argv[1], "noexpectheader")))
/* only disable 100-continue header if explicitly requested */
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);
/* Perform the request, res will get the return code */
res = curl_easy_perform(curl);
/* Check for errors */
if(res != CURLE_OK)
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
res = curl_easy_perform(curl);
/* always cleanup */
curl_easy_cleanup(curl);
/* then cleanup the form */
curl_mime_free(form);
/* free slist */
curl_slist_free_all(headerlist);
}
return 0;
}
Проверяйте внимательнее версии библиотек и когда функции появились.
Функции curl_mime_*
появились в libcurl
вчера. Буквально вчера. Набор изменений предложен 29 августа, принят в мастер 2 сентября, первый и пока единственный релиз за номером версии 7.56.0
с этими функциями выпущен 4 октября.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть класс для работы с оборудованием, который имеет 2 основных метода
Хочу поставить иконку для приложения, следуя инструкции с http://docqt
С числами всё понятно, там младший разряд можно получить с помощью деления по модулю 10: 2498 % 10 = 8
Задание следующее, это внедрить в текущую очередь новую переменную с приоритетомТо есть я сделал так что бы задались числа 2,3,4,5,6,7,8,9,10,11,12