0
我正在尝试构建一个在Windows中使用cUrl的Qt项目。我已经成功地将我的项目与libcUrl链接起来。在Windows中使用Qt Creator的libssh2
我正在使用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。我怎样才能包括它?这之后还会出现其他的依赖关系吗?
编辑:在.pro文件中添加LIBS += -lws2_32
。这删除了以下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]'