Я пытаюсь построить проект Qt, который использует cUrl в Windows. Мне удалось успешно связать мой проект с libcUrl.libssh2 в Windows с помощью Qt Creator
Я использую Qt Creator 3.5.1, Qt 5.5.1, с компилятором MinGW 4.9.2 32 бит.
Вот мой main.cpp (да, я знаю, что не хватает глобальной очистки, я только пытаюсь получить его скомпилировать в данный момент):
#include "mainwindow.h"
#include <QApplication>
#include <curl/curl.h>
int main(int argc, char *argv[]) {
curl_global_init(CURL_GLOBAL_WIN32);
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Чтобы получить Libcurl работает, я «ве добавил следующего в мой файл .pro:
INCLUDEPATH += C:\Libs\C\curl-7.45.0-win32-mingw\include
QMAKE_CXXFLAGS += -DCURL_STATICLIB
LIBS += C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a
Примечания, добавив -DCURL_STATICLIB решены ошибки, которые я имел до того, где я получил неопределенную ссылку:
C:\...\main.cpp:7: error: undefined reference to `_imp__curl_global_init'
Однако теперь я получаю следующие неопределенные refences:
C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a(easy.o):-1: error: undefined reference to `libssh2_init'
C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a(easy.o):-1: error: undefined reference to `libssh2_exit'
:-1: error: C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a(easy.o): bad reloc address 0x0 in section `.data'
collect2.exe:-1: error: error: ld returned 1 exit status
Я предполагаю, что я пропускаю ssh2. Как я могу включить это? Какие другие зависимости появятся после этого?
EDIT: Добавлено LIBS += -lws2_32
в .pro файл. Это устранило следующие 3 ошибки.
C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a(easy.o):-1: error: undefined reference to `[email protected]'
C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a(easy.o):-1: error: undefined reference to `[email protected]'
C:\Libs\C\curl-7.45.0-win32-mingw\lib\libcurl.a(easy.o):-1: error: undefined reference to `[email protected]'