Связывание libCurl в QT дает огромный список ошибок C ++ - PullRequest
4 голосов
/ 23 января 2012

Я пытаюсь связать libCurl в QT с программой на C ++ в Windows 7 x64, но когда я пытаюсь связать libcurldll.a, я получаю огромный список ошибок. Я попытался скомпилировать аналогичную функцию с GCC g++ -LC:\MinGW\lib -lcurldll, которая компилируется без ошибок. Я использую приведенный ниже код в QT и GCC.

void MainWindow::on_pushButton_2_clicked()
{
    CURL *curl;
    curl = curl_easy_init();
    curl_easy_setopt(curl, CURLOPT_URL, "http://google.com");
    curl_easy_perform(curl);
    curl_easy_cleanup(curl);
}

QT дает мне огромный список ошибок, которые я вставил сюда . Некоторые из ключевых ошибок: tlsthrd.c:-1: error: undefined reference to 'EnterCriticalSection@4' Я использую LIBS += -LC:\MinGW\lib -lcurldll в моем .pro файле, чтобы связать проект с библиотекой curl. Есть идеи, почему это происходит? Приветствия.

Редактировать: После более глубокого изучения кажется, что libmingw32.a имеет некоторые проблемы с предоставлением ссылок на функции, используемые для многопоточности. Должен ли я попробовать заменить файл библиотеки? Если да, то почему GCC правильно компилируется с тем же файлом библиотеки, а QT нет?

Ответы [ 2 ]

2 голосов
/ 25 января 2012

Добавление win32:LIBS += c:\MinGW\lib\libcurldll.a в файл .pro сделало свое дело.

1 голос
/ 24 января 2012

Blarp. Не используйте lib curl, Qt уже имеет QNetworkAccessManager , который элегантно обрабатывает запросы и ответы с использованием потоковых сигналов Qt. Все, что вам нужно, уже есть.

...