crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

wander86
  опции профиля:
сообщение 3.10.2009, 13:38
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 26
Регистрация: 8.6.2009
Из: Днепропетровск
Пользователь №: 812

Спасибо сказали: 1 раз(а)




Репутация:   0  


Кто-то подключал уже библиотеку курловскую? Если да, поделитесь опытом. (-:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
NightMan15
  опции профиля:
сообщение 29.1.2010, 11:44
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 29.12.2009
Пользователь №: 1345

Спасибо сказали: 0 раз(а)




Репутация:   0  


QT Creator + libcurl + multi

Кто-нибудь пытался пример из cUrl собрать в QT Creator. Пробую пример с интерфейсом easy все работает.
Пробую пример с интерфейсом multi не собирается, пишет
undefined reference to `select@20'
это он на это
rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);

Что эта за функция (select()) такая?
Раскрывающийся текст
/********main.cpp*******/
/#include <QtCore/QCoreApplication>
/* curl stuff */
#include <stdio.h>
#include <string.h>
#include <curl/curl.h>
int main(int argc, char *argv[])
{
   // QCoreApplication a(argc, argv);
    CURL *http_handle;
    CURL *http_handle2;
    CURLM *multi_handle;

    int still_running; /* keep number of running handles */

    http_handle = curl_easy_init();
    http_handle2 = curl_easy_init();

    /* set options */
    curl_easy_setopt(http_handle, CURLOPT_URL, "http://192.168.6.30/");
    curl_easy_setopt(http_handle, CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
    curl_easy_setopt(http_handle, CURLOPT_USERNAME,"admin");
    curl_easy_setopt(http_handle, CURLOPT_PASSWORD,"rootpasswd");

    /* set options */
    curl_easy_setopt(http_handle2, CURLOPT_URL, "http://192.168.6.29/");
    curl_easy_setopt(http_handle2, CURLOPT_HTTPAUTH,CURLAUTH_BASIC);
    curl_easy_setopt(http_handle2, CURLOPT_USERNAME,"admin");
    curl_easy_setopt(http_handle2, CURLOPT_PASSWORD,"rootpasswd");

    /* init a multi stack */
    multi_handle = curl_multi_init();

    /* add the individual transfers */
    curl_multi_add_handle(multi_handle, http_handle);
    curl_multi_add_handle(multi_handle, http_handle2);

    /* we start some action by calling perform right away */
    while(CURLM_CALL_MULTI_PERFORM ==
          curl_multi_perform(multi_handle, &still_running));

    while(still_running) {
      struct timeval timeout;
      int rc; /* select() return code */

      fd_set fdread;
      fd_set fdwrite;
      fd_set fdexcep;
      int maxfd;

      FD_ZERO(&fdread);
      FD_ZERO(&fdwrite);
      FD_ZERO(&fdexcep);

      /* set a suitable timeout to play around with */
      timeout.tv_sec = 1;
      timeout.tv_usec = 0;

      /* get file descriptors from the transfers */
      curl_multi_fdset(multi_handle, &fdread, &fdwrite, &fdexcep, &maxfd);

      /* In a real-world program you OF COURSE check the return code of the
         function calls, *and* you make sure that maxfd is bigger than -1 so
         that the call to select() below makes sense! */

      rc = ::select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);

      switch(rc) {
      case -1:
        /* select error */
        break;
      case 0:
      default:
        /* timeout or readable/writable sockets */
        while(CURLM_CALL_MULTI_PERFORM ==
              curl_multi_perform(multi_handle, &still_running));
        break;
      }
    }

    curl_multi_cleanup(multi_handle);

    curl_easy_cleanup(http_handle);
    curl_easy_cleanup(http_handle2);
    getchar();

  //  return a.exec();
}

Раскрывающийся текст
#-------------------------------------------------
#
# Project created by QtCreator 2010-01-29T09:44:30
#
#-------------------------------------------------

QT       -= gui
TARGET = curlmultiDemo
CONFIG   += console
CONFIG   -= app_bundle
INCLUDEPATH += $$quote(D:\Programms\Projects\cUrl\curl-7.19.7\include)
LIBS += $$quote(D:\Programms\Projects\cUrl\curl-7.19.7\lib\libcurldll.a)
LIBS += $$quote(D:\Programms\Projects\cUrl\curl-7.19.7\lib\libcurl.a)
TEMPLATE = app
SOURCES += main.cpp


Цитата(NightMan15 @ 29.1.2010, 12:27) *
QT Creator + libcurl + multi
undefined reference to `select@20'
это он на это
rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);


Надо добавить в проект строку
LIBS += $$quote(D:\Programms\QT\2010.01\mingw\lib\libws2_32.a)

Взято тут
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- wander86   QT и cURL   3.10.2009, 13:38
- - niXman   Да, использую. Все как обычно. Могу скомпиленную в...   3.10.2009, 15:34
|- - wander86   Цитата(niXman @ 3.10.2009, 15:34) Да, исп...   3.10.2009, 20:14
- - niXman   Для какого компилятора?   4.10.2009, 0:17
|- - wander86   Цитата(niXman @ 4.10.2009, 0:17) Для како...   4.10.2009, 14:15
- - niXman   Цитата(wander86 @ 4.10.2009, 15:15) станд...   4.10.2009, 16:54
|- - wander86   Цитата(niXman @ 4.10.2009, 17:54) Цитата(...   5.10.2009, 16:18
- - niXman   Цитата(wander86 @ 5.10.2009, 17:18) res =...   5.10.2009, 17:17
|- - wander86   Цитата(niXman @ 5.10.2009, 17:17) Ну пров...   5.10.2009, 21:09
|- - BRE   qDebug() << "--------------STA...   5.10.2009, 21:25
|- - wander86   Цитата(BRE @ 5.10.2009, 21:25) А объект C...   5.10.2009, 21:51
|- - BRE   Цитата(wander86 @ 5.10.2009, 22:51) После...   5.10.2009, 21:54
|- - wander86   Цитата(BRE @ 5.10.2009, 21:54) Это что за...   5.10.2009, 21:57
|- - BRE   Цитата(wander86 @ 5.10.2009, 22:57) colle...   5.10.2009, 22:17
|- - wander86   Цитата(BRE @ 5.10.2009, 22:17) Скорее все...   5.10.2009, 22:27
- - wander86   Законнектился, просто в .pro ввел: LIBS += -LD:/q...   5.10.2009, 23:40
- - eldar85   Здравствуйте... подскажите пожалуйста что я делаю ...   3.1.2010, 22:19
- - eldar85   парни кто присодинял Курл либо к Qt creatorу либо ...   4.1.2010, 12:48
- - Авварон   могу ошибаться, но в 16м сообщении вроде написан о...   6.1.2010, 10:49
- - deex   Цитата(Авварон @ 6.1.2010, 13:49) могу ош...   10.1.2010, 11:01
- - Litkevich Yuriy   Цитата(deex @ 10.1.2010, 14:01) компилитс...   10.1.2010, 11:05
- - deex   спасибо большое! запуск через консоль помог о...   10.1.2010, 14:16
- - NightMan15   QT Creator + libcurl + multi Кто-нибудь пытался п...   29.1.2010, 11:44
- - Litkevich Yuriy   NightMan15, смотри Справку по кнопкам и тэгам фору...   29.1.2010, 15:05
- - Гость   Могу порекомнедовать удобную связку: QtCUrl   23.5.2013, 12:28


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 3.7.2025, 20:58