Кто-то подключал уже библиотеку курловскую? Если да, поделитесь опытом. (-:
Да, использую. Все как обычно. Могу скомпиленную выложить, если нужно.
Для какого компилятора?
CURL *curl;
FILE *file;
CURLcode res;
QUrl url = QUrl("http://aslang.com/");
file = fopen("readme.txt", "wb");
curl_easy_setopt(curl, CURLOPT_URL, url.host());
curl_easy_setopt(curl, CURLOPT_FILE, file);
res = curl_easy_perform(curl);
fclose(file);
qDebug() << "--------------START--------------\n";
CURL *curl;
FILE *file;
CURLcode res;
QUrl url = QUrl("http://www.aslang.com/");
file = fopen("readme.txt", "wb");
curl_easy_setopt(curl, CURLOPT_URL, url.host());
qDebug() << "--------------CONTROL--------------\n";
curl_easy_setopt(curl, CURLOPT_FILE, file);
res = curl_easy_perform(curl);
fclose(file);
qDebug() << "--------------STOP--------------\n";
qDebug() << "--------------START--------------\n";
CURL *curl;
...
curl_easy_setopt(curl, CURLOPT_URL, url.host());
...
curl = curl_easy_init();
Законнектился, просто в .pro ввел:
LIBS += -LD:/qtdev/curl/lib -lcurl
а нада было:
LIBS += -LD:/qtdev/curl/lib -lcurl -lcurldll
(-: библиотеки поскидывал, а подключить их... (-:
Здравствуйте... подскажите пожалуйста что я делаю не так.
я использовал libcurl и boost в Эклипсе в консоле все работало отлично, соединял библиотеки libcurl, boost как тут http://www.lsdeex.ru/archives/3 .Каждый раз когда начинаешь новый проект, нужно Курл вот так присоединять:
Создай новый проект, открой его свойства Project->Properties
Вкладка C/C++ Build -> Settings
На вкладке Tool Settings: GCC C++ Complier -> Miscellaneous добавь флаг
-DCURL_STATICLIB
Чуть ниже, MinGW C++ Linker->Libraries
добавь туда библиотеки (важен порядок в котором они расположены!)
curl
wsock32
wldap32
//================================================== ============
а теперь еще к эклипсу присоединил Qt как тут - http://habrahabr.ru/blogs/development/30636/
тоже работает, окна собираются.
Но если я хочу собрать окно на Qt чтобы оно использовало libcurl то Курл не получается присоединить потому что в Project->Properties нету вкладок C/C++ Build -> Settings.
Пробывал прописывать в файле .pro LIBS += -LC:/MinGW/lib -libcurl -libcurldll но тоже не работает. не знаю что еще можно сделать...
парни кто присодинял Курл либо к Qt creatorу либо к Qt+eclipse+libcurl, поделитесь опытом. если можно пошагово объясните что и куда воткнуть и прописать.
могу ошибаться, но в 16м сообщении вроде написан ответ... скопировать библиотеки куда-нибудь, в .pro файл прописать:
LIBS += -Lпуть_куда_скопировал -lcurl -lcurldll
спасибо большое!
запуск через консоль помог определить что скомпиленной проге не хватает рядом libcurldll.dll
закинул все dll-ки и заработало
QT Creator + libcurl + multi
Кто-нибудь пытался пример из cUrl собрать в QT Creator. Пробую пример с интерфейсом easy все работает.
Пробую http://curl.haxx.se/libcurl/c/multi-double.html с интерфейсом 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, смотри http://www.forum.crossplatform.ru/index.php?showtopic=1455
Могу порекомнедовать удобную связку: https://github.com/pavlonion/qtcurl
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)