使用Qt Creator在Windows中运行libssh2
libssh2 in Windows using Qt Creator
我正在尝试构建一个在Windows中使用cUrl的Qt项目。我已经成功地将我的项目与libcUrl链接起来。
我使用的是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:LibsCcurl-7.45.0-win32-mingwinclude
QMAKE_CXXFLAGS += -DCURL_STATICLIB
LIBS += C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a
注意,添加-DCURL_STATICLIB解决了我之前得到未定义引用的错误:
C:...main.cpp:7: error: undefined reference to `_imp__curl_global_init'
然而,现在我得到了以下未定义的引用:
C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a(easy.o):-1: error: undefined reference to `libssh2_init'
C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a(easy.o):-1: error: undefined reference to `libssh2_exit'
:-1: error: C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a(easy.o): bad reloc address 0x0 in section `.data'
collect2.exe:-1: error: error: ld returned 1 exit status
我想我错过了ssh2。我该如何将其包括在内?在这个之后还会出现什么其他依赖关系?
编辑:将LIBS += -lws2_32
添加到.pro文件中。这消除了以下3个错误。
C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a(easy.o):-1: error: undefined reference to `_imp__WSAStartup@8'
C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a(easy.o):-1: error: undefined reference to `_imp__WSACleanup@0'
C:LibsCcurl-7.45.0-win32-mingwliblibcurl.a(easy.o):-1: error: undefined reference to `_imp__WSACleanup@0'
这是一个巨大的痛苦。
我最终下载了libcurl的源代码,在没有ssh2的情况下进行了重建,然后通过包含-lwldap32
,我终于可以毫无错误地构建它。
然而,在Linux中成功的代码在Windows中失败。
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 运行程序时出现问题
- 控制允许动态运行c++的并发操作数
- 使用Qt Creator在Windows中运行libssh2