0 / 0 / 0
Регистрация: 05.05.2019
Сообщений: 8
|
|
1 | |
Qt для статической сборки программного обеспечения06.08.2019, 13:37. Показов 4549. Ответов 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
Виды программного обеспечения для безопасности Лицензия для своего программного обеспечения Предложите сервис для разработчиков программного обеспечения Поиск программного обеспечения для терминалов оплаты Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
|
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
|
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
|
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
|
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
|
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
|
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
|
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций
История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
|
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
|
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы
В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
|
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
|
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
|