Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/22: Рейтинг темы: голосов - 22, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 8
1

Qt для статической сборки программного обеспечения

06.08.2019, 13:37. Показов 4303. Ответов 6

Author24 — интернет-сервис помощи студентам
Всем здравствуйте, форумчане!
Так уж вышло, что я не силен в собирании чего-либо. И очень прошу помочь.
При статической сборке 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.08.2019, 13:37
Ответы с готовыми решениями:

Проблемы статической сборки
Здравствуйте Форумчани! Пытаюсь статически собрать QT. Операционная система Windows 7 SP1 x32...

запуск программ без статической сборки
Здравствуйте! Пересобрал Qt статически - вроде все работает, но как дошло дело до баз данных -...

После статической сборки Qt не запускаются GUI приложения
Здравствуйте! Недавно начал осваивать Qt (версия 5.2.1, компилятор MinGW 4.8 32bit), сразу не...

Разработка программного обеспечения для математической
Привет! Я еще вить только учусь а мне задали ужаснейшую задачу с трьох этажными сложными...

6
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
Эксперт С++
8385 / 6147 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
06.08.2019, 19:10 6
Передавайте список пакетов которые нужно установить. А еще лучше исходники с инструкцией по сборке.
1
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
Добавлено через 9 минут
Решил сам.
0
08.08.2019, 14:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.08.2019, 14:08
Помогаю со студенческими работами здесь

Виды программного обеспечения для безопасности
Товарищи!!! Помогите!!! Какие средства защиты существуют в организациях? Я знаю лишь...

Лицензия для своего программного обеспечения
Здравствуйте. Я пишу программу, исходники доступны в открытом доступе на GitHub. Предположим, что...

Предложите сервис для разработчиков программного обеспечения
Предложите аналог этого (см.), но чтоб при регистрации не спрашивали номер телефона.

Поиск программного обеспечения для терминалов оплаты
Здравствуйте мне нужно по для терминала,мне нужно чтобы терминал брал деньги и печал чек сколько...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru