Продолжаем собирать openssl 1.0.2 под Qt Creator 2.4.1 с библиотекой Qt 4.8.1.
Тут речь о том как настроить проект pro для сборки самой библиотеки ssleay32 из исходников. Делать это в принципе не обязательно. То есть это только для общего развития. Так как ssleay32 собирается прекрасно из поставки , главное чтобы настройки сборки (тулчейн) был одинаковый в qt и в openssl.
Ранее мы уже собрали библиотеку libeay32.lib на соседней странице .
Теперь займемся библиотекой ssleay32.lib , которая в свою очередь будет использовать криптографию libeay32.lib.
Так будет выглядеть ssl.pro :
INCLUDEPATH = $$PWD/.. $$PWD/../ms $$PWD/../test $$PWD/../crypto $$PWD/../crypto/err
DEPENDPATH = $$PWD/.. $$PWD/../ms $$PWD/../test $$PWD/../crypto $$PWD/../crypto/err
DEFINES = OPENSSL_THREADS DSO_WIN32 OPENSSL_SYSNAME_WIN32 WIN32_LEAN_AND_MEAN L_ENDIAN _CRT_SECURE_NO_DEPRECATE WINSOCK_DEPRECATED_NO_WARNINGS OPENSSL_USE_APPLINK OPENSSL_NO_RC5 OPENSSL_NO_MD2 OPENSSL_NO_SSL2 OPENSSL_NO_KRB5 OPENSSL_NO_JPAKE OPENSSL_NO_WEAK_SSL_CIPHERS OPENSSL_NO_STATIC_ENGINE _WINDLL OPENSSL_BUILD_SHLIBSSL
TARGET = ssleay32
TEMPLATE = lib
QT -= gui
CONFIG = staticlib # !!!!! будет lib , а не dll !!!!
OBJECTS_DIR = tmp\\obj\\$$out_dir
MOC_DIR = tmp\\moc\\$$out_dir
RCC_DIR = tmp\\rcc\\$$out_dir
UI_DIR = ui # чтобы из других проектов не подтягивать чужие ui_ ... .h
win32:LIBS = ws2_32.lib gdi32.lib advapi32.lib crypt32.lib user32.lib
include(my2/my2.pri)
HEADERS = \
dtls1.h \
kssl.h \
kssl_lcl.h \
srtp.h \
ssl.h \
ssl_locl.h \
ssl2.h \
ssl3.h \
ssl23.h \
tls1.h \
../e_os.h \
../openssl/x509v3.h \
../openssl/x509_vfy.h \
../openssl/x509.h \
../openssl/whrlpool.h \
../openssl/ui_compat.h \
../openssl/ui.h \
../openssl/txt_db.h \
../openssl/ts.h \
../openssl/tls1.h \
../openssl/symhacks.h \
../openssl/stack.h \
../openssl/ssl23.h \
../openssl/ssl3.h \
../openssl/ssl2.h \
../openssl/ssl.h \
../openssl/srtp.h \
../openssl/srp.h \
../openssl/sha.h \
../openssl/seed.h \
../openssl/safestack.h \
../openssl/rsa.h \
../openssl/ripemd.h \
../openssl/rc4.h \
../openssl/rc2.h \
../openssl/rand.h \
../openssl/pqueue.h \
../openssl/pkcs12.h \
../openssl/pkcs7.h \
../openssl/pem2.h \
../openssl/pem.h \
../openssl/ossl_typ.h \
../openssl/opensslv.h \
../openssl/opensslconf.h \
../openssl/ocsp.h \
../openssl/objects.h \
../openssl/obj_mac.h \
../openssl/modes.h \
../openssl/mdc2.h \
../openssl/md5.h \
../openssl/md4.h \
../openssl/lhash.h \
../openssl/kssl.h \
../openssl/krb5_asn.h \
../openssl/idea.h \
../openssl/hmac.h \
../openssl/evp.h \
../openssl/err.h \
../openssl/engine.h \
../openssl/ecdsa.h \
../openssl/ecdh.h \
../openssl/ec.h \
../openssl/ebcdic.h \
../openssl/e_os2.h \
../openssl/dtls1.h \
../openssl/dso.h \
../openssl/dsa.h \
../openssl/dh.h \
../openssl/des_old.h \
../openssl/des.h \
../openssl/crypto.h \
../openssl/conf_api.h \
../openssl/conf.h \
../openssl/comp.h \
../openssl/cms.h \
../openssl/cmac.h \
../openssl/cast.h \
../openssl/camellia.h \
../openssl/buffer.h \
../openssl/bn.h \
../openssl/blowfish.h \
../openssl/bio.h \
../openssl/asn1t.h \
../openssl/asn1_mac.h \
../openssl/asn1.h \
../openssl/aes.h
SOURCES = \
bio_ssl.c \
d1_both.c \
d1_clnt.c \
d1_lib.c \
d1_meth.c \
d1_pkt.c \
d1_srtp.c \
d1_srvr.c \
kssl.c \
s2_clnt.c \
s2_enc.c \
s2_lib.c \
s2_meth.c \
s2_pkt.c \
s2_srvr.c \
s3_both.c \
s3_cbc.c \
s3_clnt.c \
s3_enc.c \
s3_lib.c \
s3_meth.c \
s3_pkt.c \
s3_srvr.c \
s23_clnt.c \
s23_lib.c \
s23_meth.c \
s23_pkt.c \
s23_srvr.c \
ssl_algs.c \
ssl_asn1.c \
ssl_cert.c \
ssl_ciph.c \
ssl_conf.c \
ssl_err.c \
ssl_err2.c \
ssl_lib.c \
ssl_rsa.c \
ssl_sess.c \
ssl_stat.c \
ssl_txt.c \
ssl_utst.c \
t1_clnt.c \
t1_enc.c \
t1_ext.c \
t1_lib.c \
t1_meth.c \
t1_reneg.c \
t1_srvr.c \
t1_trce.c \
tls_srp.c
win32 {
RC_FILE = $$PWD/../ms/version32.rc
}
win32{
CONFIG = embed_manifest_exe
#QMAKE_LFLAGS_WINDOWS = /MANIFESTUAC:"level='requireAdministrator'"
}
win32:CONFIG(release, debug|release): LIBS = -L$$OUT_PWD/../crypto/release/ -llibeay32
else:win32:CONFIG(debug, debug|release): LIBS = -L$$OUT_PWD/../crypto/debug/ -llibeay32
INCLUDEPATH = $$PWD/../crypto
DEPENDPATH = $$PWD/../crypto
Чтобы ушли ошибки компиляции / сборки убрали некоторые файлы . Но здесь правки намного меньше получилось чем при сборке libeay32 :
ssl (*.*)
- ssl_task.c VMS
- bad_dtls_test.c main
- clienthellotest.c
- dtlstest.c
- fatalerrtest.c
- ssltest.c
- sslv2conftest.c
Теперь библиотека ssleay32.lib тоже собрана и можно наконец-то переходить к изучению и тестированию работы из под Qt Creator 2.4.1 и Qt 4.8.1 с отладчиком и т.д.