缺省是 -openssl ,应该是带了OpenSSL support了啊。
编译securesocketclient出错应该是其它的原因吧?
查看src/network/Makefile,里面确实没有包含qssl*
打开
network.pro,在头部手动添加
QT_CONFIG += openssl
然后qmake并nmake,就出了一大堆错误
qsslcertificate.cpp
f:\qt-win-opensource-src-4.3.4\src\network\qsslsocket_p.h(84) : error C2143: 语法错误 : 缺少";"(在"*"的前面)
f:\qt-win-opensource-src-4.3.4\src\network\qsslsocket_p.h(84) : error C2433: "QSslSocketPrivate::QSslSocket": 不允许在数据声明中使用"inline"
f:\qt-win-opensource-src-4.3.4\src\network\qsslsocket_p.h(84) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
f:\qt-win-opensource-src-4.3.4\src\network\qsslsocket_p.h(84) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
f:\qt-win-opensource-src-4.3.4\src\network\qsslsocket_p.h(84) : warning C4183: "q_func": 缺少返回类型;假定为返回"int"的成员函数
..........
再看
network.pro,发现一些奇怪的地方
# OpenSSL support; compile in QSslSocket.
contains(QT_CONFIG, openssl) {
include($$QT_SOURCE_TREE/config.tests/unix/openssl/openssl.pri)# 一是qt下面就没有config.tests目录,二来怎么会是*/unix/*呢?
HEADERS += qssl.h \
qsslcertificate.h \
qsslcertificate_p.h \
qsslcipher.h \
qsslcipher_p.h \
qsslerror.h \
qsslkey.h \
qsslsocket.h \
qsslsocket_openssl_p.h \
qsslsocket_openssl_symbols_p.h \
qsslsocket_p.h
SOURCES += qssl.cpp \
qsslcertificate.cpp \
qsslcipher.cpp \
qsslerror.cpp \
qsslkey.cpp \
qsslsocket.cpp \
qsslsocket_openssl.cpp \
qsslsocket_openssl_symbols.cpp
# Only for static builds, we link against OpenSSL.
contains(CONFIG, static) {
win32:LIBS += -lssleay32 -llibeay32
unix:LIBS += -lssl -lcrypto
}
# Include Qt's default CA bundle
RESOURCES += network.qrc
}
请教在winxp下编译成功过openssl的兄弟,介绍一下经验好么?