链接openssl到Qt失败
Failed to link openssl to Qt
我已经在linux上启动了一个Qtcreator项目。这个项目使用Openssl库来工作。因此,在我的。pro文件中,我添加了这些行:
LIBS += -lssl
LIBS += -lcrypto
所以在linux上它工作得很好。
但是,我必须在windows上继续我的项目。我必须用cygwin安装Openssl,我选择了这个包:"cygwin32-openssl-1.0.1e-1.tar"。bz2"因为我用32位编译。
我在我的program文件夹中创建了一个名为libs的子目录,并将三个openssl文件夹(bin, include和lib)放在我的"libs"目录中。
lib目录的内容为:
libcrypto.a
libcrypto.dll.a
libssl.a
libssl.dll.a
pkgconfig/libcrypto.pc
pkgconfig/libssl.pc
pkgconfig/openssl.pc
在bin目录我有2 .dll, cygcrypto-1.0.0.dll和cygssl-1.0.0.dll
我在我的。pro文件中添加了这些行:
LIBS += -lssl
LIBS += -lcrypto
LIBS += -L"$$PWD/libs/openssl/lib/"
INCLUDEPATH += $$PWD/libs/openssl/include/
如果我将-L"$$PWD/libs/openssl/lib/"改为-L"$$PWD/libs/openssl/bin/",编译器将无法识别-lssl和-lcrypto选项。
QtCreator识别头文件(例如),当我编译时,没有发生错误。
但是当我启动程序时,它不工作,也没有出现错误。所以我在main函数的开头设置了断点,然后重新启动程序。之后,一个小窗口告诉我这个错误:
可执行文件失败:启动过程中程序退出,代码0xc0000135
我使用Qt 5.4.0和Mingw 32位
我不明白为什么它不起作用。你能帮我一下吗?谢谢你。
整个项目都需要使用cygwin,或者不使用cygwin。由于我假设您正在使用Visual Studio编译器进行编译,因此您需要使用不依赖于cygwin的OpenSSL构建。例如,来自Shining Light Productions的一个,它实际上是Windows的OpenSSL二进制提供商。
- 断言"id < 0"在Qt ActiveX中失败
- Qt:memcpy失败了.如何复制?
- Qt:更新 QString 时自动生成的代码失败
- 为什么我的Qt程序在断言失败后继续运行?
- 构建 C++ Allegro 5 在 Linux Mint QT 上失败
- Qt:使用'mailto:'打开用户的电子邮件客户端失败
- CMake + Qt,moc 编译失败,无法实现 QMetaObject 方法(编译器找不到基本 ui 对象的标头?
- 内联在对always_inline的调用中失败,Qt中的目标特定选项不匹配
- 错误:无法构建 PhantomJS!构建Qt基地失败
- Qt C++:静态断言失败:信号和插槽参数不兼容
- 使用 QT 执行二进制构建失败
- Qt - QUdpSocket 绑定不断失败
- TagniFi的HTTPS Basic Authentication 在 Qt 中失败
- QT Q_PROPERTY错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- Qt Post请求正在执行但失败
- 断言失败 (size.width>0 && size.height>0) Qt with OpenCV
- Qt命令行编译在链接器阶段失败,出现垃圾NXCOMPAT数据
- dynamic_cast over共享库在使用clang编译的Android上的Qt中失败
- Qt OpenGL帧缓冲在一台PC上创建,但在另一台PC上失败
- Qt 和 CMake 失败并出现重复的符号