0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 8
|
|
1 | |
Qt для статической сборки программного обеспечения06.08.2019, 13:37. Показов 4303. Ответов 6
Всем здравствуйте, форумчане!
Так уж вышло, что я не силен в собирании чего-либо. И очень прошу помочь. При статической сборке QT вылетают следующие ошибки: Код
ssl/qsslcertificate.cpp: In member function ‘QByteArray QSslCertificate::version() const’: ssl/qsslcertificate.cpp:260:68: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’} QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1); ^~ In file included from ../../include/QtNetwork/qsslcertificate.h:1, from ../../include/QtNetwork/../../src/network/ssl/qsslerror.h:47, from ../../include/QtNetwork/qsslerror.h:1, from ssl/qsslsocket.h:50, from ssl/qsslsocket_p.h:46, from ssl/qsslsocket_openssl_p.h:57, from ssl/qsslsocket_openssl_symbols_p.h:57, from ssl/qsslcertificate.cpp:110: ../../include/QtNetwork/../../src/network/ssl/qsslcertificate.h:53:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’} typedef struct x509_st X509; // ### check if this works ^~~~~~~ ssl/qsslcertificate.cpp: In member function ‘QByteArray QSslCertificate::serialNumber() const’: ssl/qsslcertificate.cpp:275:45: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’} ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber; ^~ In file included from ../../include/QtNetwork/qsslcertificate.h:1, from ../../include/QtNetwork/../../src/network/ssl/qsslerror.h:47, from ../../include/QtNetwork/qsslerror.h:1, from ssl/qsslsocket.h:50, from ssl/qsslsocket_p.h:46, from ssl/qsslsocket_openssl_p.h:57, from ssl/qsslsocket_openssl_symbols_p.h:57, from ssl/qsslcertificate.cpp:110: ../../include/QtNetwork/../../src/network/ssl/qsslcertificate.h:53:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’} typedef struct x509_st X509; // ### check if this works ^~~~~~~ ssl/qsslcertificate.cpp: In member function ‘QSslKey QSslCertificate::publicKey() const’: ssl/qsslcertificate.cpp:488:32: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’} X509_PUBKEY *xkey = d->x509->cert_info->key; ^~ In file included from ../../include/QtNetwork/qsslcertificate.h:1, from ../../include/QtNetwork/../../src/network/ssl/qsslerror.h:47, from ../../include/QtNetwork/qsslerror.h:1, from ssl/qsslsocket.h:50, from ssl/qsslsocket_p.h:46, from ssl/qsslsocket_openssl_p.h:57, from ssl/qsslsocket_openssl_symbols_p.h:57, from ssl/qsslcertificate.cpp:110: ../../include/QtNetwork/../../src/network/ssl/qsslcertificate.h:53:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’} typedef struct x509_st X509; // ### check if this works ^~~~~~~ ssl/qsslcertificate.cpp:492:29: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) { ^~ In file included from /usr/include/openssl/crypto.h:25, from /usr/include/openssl/bio.h:20, from /usr/include/openssl/asn1.h:16, from ssl/qsslsocket_openssl_p.h:66, from ssl/qsslsocket_openssl_symbols_p.h:57, from ssl/qsslcertificate.cpp:110: /usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} typedef struct evp_pkey_st EVP_PKEY; ^~~~~~~~~~~ ssl/qsslcertificate.cpp:496:36: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) { ^~ In file included from /usr/include/openssl/crypto.h:25, from /usr/include/openssl/bio.h:20, from /usr/include/openssl/asn1.h:16, from ssl/qsslsocket_openssl_p.h:66, from ssl/qsslsocket_openssl_symbols_p.h:57, from ssl/qsslcertificate.cpp:110: /usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} typedef struct evp_pkey_st EVP_PKEY; ^~~~~~~~~~~ ssl/qsslcertificate.cpp:500:36: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) { ^~ In file included from /usr/include/openssl/crypto.h:25, from /usr/include/openssl/bio.h:20, from /usr/include/openssl/asn1.h:16, from ssl/qsslsocket_openssl_p.h:66, from ssl/qsslsocket_openssl_symbols_p.h:57, from ssl/qsslcertificate.cpp:110: /usr/include/openssl/ossl_typ.h:93:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’} typedef struct evp_pkey_st EVP_PKEY; Битый час пытаюсь собрать, а гуглы не говорят ничего интересного по этому поводу.
0
|
06.08.2019, 13:37 | |
Ответы с готовыми решениями:
6
Проблемы статической сборки запуск программ без статической сборки После статической сборки Qt не запускаются GUI приложения Разработка программного обеспечения для математической |
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
|
06.08.2019, 14:09 | 2 |
Если не нужна поддержка SSL, то лучше его вообще отключить.
Если же нужна, то надо в пути добавлять заголовки выбранной версии SSL, как-то так: build.cmd Код
set QTSRC=C:\Qt\qt-everywhere-opensource-src-5.9.5 set MINGWPATH=D:\Qt\Qt5.9.5\5.9.5\mingw53_32\bin set QTPREFIX=D:\Qt\Qt5.9.5\5.9.5\mingw53_32_static set PYPATH=C:\dev\Python37-32 set PERLPATH=C:\dev\Strawberry\perl\bin set JOMPATH=C:\dev\jom set SSLINSTALLDIR=C:\dev\OpenSSL-Win32 set MYSQLPATH=C:\dev\mysql-5.5.62-win32 set QTDIR=%QTSRC%\qtbase set PATH=%PATH%;%MINGWPATH%;%PYPATH%;%PERLPATH%;%RUBYPATH%;%QTDIR%/bin;C:\dev\mysql-5.5.62-win32\lib;C:\dev\mysql-5.5.62-win32\bin set LIBS=%LIBS%;C:\dev\mysql-5.5.62-win32\lib;C:\dev\OpenSSL-Win32\lib set INCLUDE=%INCLUDE%;C:\dev\mysql-5.5.62-win32\include;C:\dev\OpenSSL-Win32\include;C:\dev\OpenSSL-Win32\include\openssl;C:\dev\mysql-5.5.62-win32\include\mysql cd /d %QTSRC% configure -prefix %QTPREFIX% -opensource -debug-and-release -confirm-license -static -static-runtime -platform win32-g++ -opengl desktop -mp -c++std c++11 ^ -qt-libpng -qt-pcre -qt-libjpeg -qt-freetype -qt-zlib -qt-pcre -qt-zlib -qt-sqlite -optimize-size ^ -skip qtdoc -skip qtwayland -skip qtwebview -skip qtwebengine -skip qtwebchannel -skip qtscript -skip qt3d -skip qttools ^ -no-pch -no-icu -no-shared -no-angle -no-qml-debug -no-icu -no-compile-examples -nomake examples -nomake tests -nomake tools ^ -ssl -openssl -openssl-runtime OPENSSL_PREFIX=%SSLINSTALLDIR% -sql-mysql -sql-sqlite ^ -IC:\dev\mysql-5.5.62-win32\include\mysql -LC:\dev\mysql-5.5.62-win32\lib ^ -IC:\dev\OpenSSL-Win32\include -LC:\dev\OpenSSL-Win32\lib ^ MYSQL_INCDIR=C:/dev/mysql-5.5.62-win32/include "MYSQL_LIBDIR=C:/dev/mysql-5.5.62-win32/lib" ^ OPENSSL_LIBS="-LC:/dev/OpenSSL-Win32/lib -llibeay32 -lssleay32"
0
|
0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 8
|
|
06.08.2019, 14:23 [ТС] | 3 |
Отключить можно путем -nomake openssl?
Забыл упомянуть, что я на ubuntu.
0
|
96 / 82 / 22
Регистрация: 19.10.2013
Сообщений: 485
|
|
06.08.2019, 14:28 | 4 |
configure --help | grep ssl
Добавлено через 1 минуту Но позвольте вопрос, зачем для линукса статическая линковка?
0
|
0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 8
|
|
06.08.2019, 15:58 [ТС] | 5 |
Это техническое ПО, которое будет передаваться людям. Вот и вся соль.
0
|
0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 8
|
|
08.08.2019, 14:08 [ТС] | 7 |
Возникли новые проблемы. Прошу помочь.
Код
make[4]: *** [Makefile:58157: .obj/release-static/previewmanager.o] Error 1 make[4]: Leaving directory '/home/user/qt_source/tools/designer/src/lib' make[3]: *** [Makefile:78: sub-lib-make_default-ordered] Error 2 make[3]: Leaving directory '/home/user/qt_source/tools/designer/src' make[2]: *** [Makefile:39: sub-src-make_default] Error 2 make[2]: Leaving directory '/home/user/qt_source/tools/designer' make[1]: *** [Makefile:227: sub-designer-make_default-ordered] Error 2 make[1]: Leaving directory '/home/user/qt_source/tools' make: *** [Makefile:633: sub-tools-make_default-ordered] Error 2 Решил сам.
0
|
08.08.2019, 14:08 | |
08.08.2019, 14:08 | |
Помогаю со студенческими работами здесь
7
Виды программного обеспечения для безопасности Лицензия для своего программного обеспечения Предложите сервис для разработчиков программного обеспечения Поиск программного обеспечения для терминалов оплаты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |