Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: CyclicBarrier от Октябрь 04, 2013, 08:19



Название: Сборка Qt 4.8 с OpenSSL
Отправлено: CyclicBarrier от Октябрь 04, 2013, 08:19
Пытаюсь собрать Qt 4.8.5 с поддержкой OpenSSL с помощью VS2012. Для этого собрал OpenSSL версий 0.9.8 и 1.0.1e (с обеими версиями Qt не собирается).
Далее сконфигурировал Qt таким образом
Код:
SET PATH=%PATH%;C:\OpenSSL\bin
SET INCLUDE=C:\OpenSSL\include;%INCLUDE%
SET LIB=C:\OpenSSL\lib;%LIB%

configure -debug-and-release -opensource -confirm-license -shared -ltcg -rtti -platform win32-msvc2012 -openssl
ещё пробовал такие варианты
Код:
configure -debug-and-release -opensource -confirm-license -shared -ltcg -rtti -platform win32-msvc2012 -openssl -I C:\OpenSSL\include -L C:\OpenSSL\lib
configure -debug-and-release -opensource -confirm-license -shared -ltcg -rtti -platform win32-msvc2012 -openssl-linked -I C:\OpenSSL\include -L C:\OpenSSL\lib
configure -debug-and-release -opensource -confirm-license -shared -ltcg -rtti -platform win32-msvc2012 -openssl OPENSSL_LIBS="-LC:\\OpenSSL\\lib -lssl -lcrypto"
Проблема в том, что когда запускаю сборку Qt в процессе сборки компилятор выдаёт такие ошибки, думаю не может найти исходники Qt/src/network/ssl.
Код:
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(92) : error C2146: syntax error : missing ';' before identifier 'p
eerCertificate'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(92) : error C4430: missing type specifier - int assumed. Note: C++
 does not support default-int
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(93) : error C2065: 'QSslCertificate' : undeclared identifier
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(93) : error C2923: 'QList' : 'QSslCertificate' is not a valid temp
late type argument for parameter 'T'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(94) : error C2146: syntax error : missing ';' before identifier 'l
ocalCertificate'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(94) : error C4430: missing type specifier - int assumed. Note: C++
 does not support default-int
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(96) : error C2146: syntax error : missing ';' before identifier 'p
rivateKey'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(96) : error C4430: missing type specifier - int assumed. Note: C++
 does not support default-int
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(97) : error C2146: syntax error : missing ';' before identifier 's
essionCipher'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(97) : error C4430: missing type specifier - int assumed. Note: C++
 does not support default-int
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(98) : error C2065: 'QSslCipher' : undeclared identifier
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(98) : error C2923: 'QList' : 'QSslCipher' is not a valid template
type argument for parameter 'T'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(99) : error C2065: 'QSslCertificate' : undeclared identifier
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(99) : error C2923: 'QList' : 'QSslCertificate' is not a valid temp
late type argument for parameter 'T'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(102) : error C2653: 'QSslSocket' : is not a class or namespace nam
e
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(102) : error C2146: syntax error : missing ';' before identifier '
peerVerifyMode'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(102) : error C4430: missing type specifier - int assumed. Note: C+
+ does not support default-int
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(109) : error C2146: syntax error : missing ';' before identifier '
defaultConfiguration'
c:\qt\test\src\network\ssl\qsslconfiguration_p.h(109) : error C4430: missing type specifier - int assumed. Note: C+
+ does not support default-int

покопался в багтрекере и нашёл похожий баг для версии Qt 5.1.0 - https://bugreports.qt-project.org/browse/QTBUG-32830 (https://bugreports.qt-project.org/browse/QTBUG-32830), для версии 4.8 записей не нашёл.
Вопрос, что я делаю не так и как мне собрать Qt 4.8.5 с поддержкой OpenSSL?


Название: Re: Сборка Qt 4.8 с OpenSSL
Отправлено: Alex Custov от Октябрь 04, 2013, 09:49
Я собираю так для mingw:

Код:
set OPENSSLDIR=%~dp0extra\openssl

configure.exe <...> -openssl -I %OPENSSLDIR%\include -L %OPENSSLDIR%\lib -L %OPENSSLDIR%\bin


Название: Re: Сборка Qt 4.8 с OpenSSL
Отправлено: CyclicBarrier от Октябрь 04, 2013, 10:11
Сделал так, не помогло
Код:
configure -platform win32-msvc2012 -openssl -I C:\OpenSSL\include -L C:\OpenSSL\lib -L C:\OpenSSL\bin


Название: Re: Сборка Qt 4.8 с OpenSSL
Отправлено: Alex Custov от Октябрь 04, 2013, 10:15
покажи полный вывод configure. Openssl судя по всему не подключился.


Название: Re: Сборка Qt 4.8 с OpenSSL
Отправлено: CyclicBarrier от Октябрь 04, 2013, 10:36
Полный вывод configure в аттаче.
Для configure я передаю опцию какой конкретно использовать компилятор, а именно VS2012, у меня ещё стоит VS2010 и он не используется.


Название: Re: Сборка Qt 4.8 с OpenSSL
Отправлено: CyclicBarrier от Октябрь 04, 2013, 13:07
Я собираю так для mingw:

А какую версию Qt с какой версией OpenSSL так собираешь?


Название: Re: Сборка Qt 4.8 с OpenSSL
Отправлено: Alex Custov от Октябрь 04, 2013, 14:15
Qt 4.8.5, OpenSSL последний 1.0.1e