Qt building from sources - qtopcua errors
-
HI,
for some reasons I want to build Qt from sources by my own. As a first try I startet with the standard configuration.
My system is Linux (Opensuse Tumbleweed)
configure is running without issues.
build stopps with error messages:... [6/5192] Building CXX object qtopcua/src/opcua/CMakeFiles/OpcUa.dir/x509/qopcuax509certificatesigningrequest.cpp.o FAILED: qtopcua/src/opcua/CMakeFiles/OpcUa.dir/x509/qopcuax509certificatesigningrequest.cpp.o /usr/bin/c++ -DOpcUa_EXPORTS -DQT_ASCII_CAST_WARNINGS -DQT_BUILDING_QT -DQT_BUILD_OPCUA_LIB -DQT_CORE_LIB -DQT_DEPRECATED_WARNINGS -DQT_EXPLICIT_QFILE_CONSTRUCTION_FROM_PATH -DQT_LEAN_HEADERS=1 -DQT_MOC_COMPAT -DQT_NETWORK_LIB -DQT_NO_AS_CONST=1 -DQT_NO_CAST_TO_ASCII -DQT_NO_CONTEXTLESS_CONNECT=1 -DQT_NO_DEBUG -DQT_NO_EXCEPTIONS -DQT_NO_FOREACH -DQT_NO_FOREACH=1 -DQT_NO_JAVA_STYLE_ITERATORS -DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT -DQT_NO_QASCONST -DQT_NO_QEXCHANGE -DQT_NO_QSNPRINTF -DQT_USE_QSTRINGBUILDER -D_GLIBCXX_ASSERTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -I/home/joachim/Qt/6.8.0/build/qtopcua/src/opcua/OpcUa_autogen/include -I/home/joachim/Qt/6.8.0/build/qtbase/include -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtOpcUa -I/home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua -I/home/joachim/Qt/6.8.0/build/qtopcua/src/opcua -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtOpcUa/6.8.0 -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtOpcUa/6.8.0/QtOpcUa -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtCore -I/home/joachim/Qt/6.8.0/Src/qtbase/mkspecs/linux-g++ -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtNetwork -I/home/joachim/Qt/6.8.0/build/qtbase/src/corelib -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtCore/6.8.0 -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtCore/6.8.0/QtCore -I/home/joachim/Qt/6.8.0/build/qtbase/src/network -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtNetwork/6.8.0 -I/home/joachim/Qt/6.8.0/build/qtbase/include/QtNetwork/6.8.0/QtNetwork -DNDEBUG -O2 -std=gnu++17 -fPIC -fvisibility=hidden -fvisibility-inlines-hidden -Wall -Wextra -fno-exceptions -fconstexpr-ops-limit=40000000 -fPIC -U_FORTIFY_SOURCE -Wsuggest-override -fcf-protection=full -D_FORTIFY_SOURCE=3 -ftrivial-auto-var-init=pattern -fstack-protector-strong -fstack-clash-protection -Winvalid-pch -include /home/joachim/Qt/6.8.0/build/qtopcua/src/opcua/CMakeFiles/OpcUa.dir/cmake_pch.hxx -MD -MT qtopcua/src/opcua/CMakeFiles/OpcUa.dir/x509/qopcuax509certificatesigningrequest.cpp.o -MF qtopcua/src/opcua/CMakeFiles/OpcUa.dir/x509/qopcuax509certificatesigningrequest.cpp.o.d -o qtopcua/src/opcua/CMakeFiles/OpcUa.dir/x509/qopcuax509certificatesigningrequest.cpp.o -c /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/qopcuax509certificatesigningrequest.cpp In Datei, eingebunden von /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols_p.h:211, von /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/qopcuax509certificatesigningrequest.cpp:5: /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/qsslsocket_openssl11_symbols_p.h:57:40: Fehler: »OPENSSL_STACK« wurde in diesem Gültigkeitsbereich nicht deklariert; meinten Sie »OPENSSL_STRING«? 57 | Q_AUTOTEST_EXPORT int q_OPENSSL_sk_num(OPENSSL_STACK *a); | ^~~~~~~~~~~~~ | OPENSSL_STRING ... /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:800:5: Anmerkung: bei Substitution des Makros »RESOLVEFUNC« 800 | RESOLVEFUNC(OPENSSL_sk_pop_free) | ^~~~~~~~~~~ /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:433:23: Fehler: »_q_PTR_OPENSSL_sk_pop_free« wurde in diesem Gültigkeitsbereich nicht definiert 433 | if (!(_q_##func = _q_PTR_##func(libs.ssl->resolve(#func))) \ | ^~~~~~~ /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:800:5: Anmerkung: bei Substitution des Makros »RESOLVEFUNC« 800 | RESOLVEFUNC(OPENSSL_sk_pop_free) | ^~~~~~~~~~~ /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:433:11: Fehler: »_q_OPENSSL_sk_value« wurde in diesem Gültigkeitsbereich nicht deklariert; meinten Sie »q_OPENSSL_sk_value«? 433 | if (!(_q_##func = _q_PTR_##func(libs.ssl->resolve(#func))) \ | ^~~ /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:801:5: Anmerkung: bei Substitution des Makros »RESOLVEFUNC« 801 | RESOLVEFUNC(OPENSSL_sk_value) | ^~~~~~~~~~~ /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:433:23: Fehler: »_q_PTR_OPENSSL_sk_value« wurde in diesem Gültigkeitsbereich nicht deklariert; meinten Sie »q_OPENSSL_sk_value«? 433 | if (!(_q_##func = _q_PTR_##func(libs.ssl->resolve(#func))) \ | ^~~~~~~ /home/joachim/Qt/6.8.0/Src/qtopcua/src/opcua/x509/openssl_symbols.cpp:801:5: Anmerkung: bei Substitution des Makros »RESOLVEFUNC« 801 | RESOLVEFUNC(OPENSSL_sk_value) | ^~~~~~~~~~~ [16/5192] Building CXX object qtremoteobjects/src/remoteobjects/CMakeFiles/RemoteObjects.dir/qconnectionfactories.cpp.o [17/5192] Building CXX object qtremoteobjects/src/remoteobjects/CMakeFiles/RemoteObjects.dir/qremoteobjectabstractitemmodeladapter.cpp.o [18/5192] Building CXX object qtquick3dphysics/src/quick3dphysics/CMakeFiles/Quick3DPhysics.dir/qheightfieldshape.cpp.o [19/5192] Building CXX object qtquick3dphysics/src/quick3dphysics/CMakeFiles/Quick3DPhysics.dir/qphysicscommands.cpp.o [20/5192] Building CXX object qtremoteobjects/src/remoteobjects/CMakeFiles/RemoteObjects.dir/RemoteObjects_autogen/mocs_compilation.cpp.o [21/5192] Building CXX object qtquick3dphysics/src/quick3dphysics/CMakeFiles/Quick3DPhysics.dir/quick3dphysics_qmltyperegistrations.cpp.o [22/5192] Building CXX object qtquick3dphysics/src/quick3dphysics/CMakeFiles/Quick3DPhysics.dir/qmeshshape.cpp.o [23/5192] Building CXX object qtquick3dphysics/src/quick3dphysics/CMakeFiles/Quick3DPhysics.dir/qphysicsworld.cpp.o ninja: build stopped: subcommand failed.
I am far away from knowing what is going wrong. I expect some devel components of openssl are missing. If so, what do i have to install?
On the other hand, what is qtopcua for? Maybe it is not needed for my purposes, but then, how to exclude from the build?
-
Make sure to use OpenSSL 3.x and not 1.x
-
the following packages with tag openssl are available. The installed ones are marked with an i.
I already tried to install
libopenssl-3-devel
but get conflicts. If this is the missing library I have to ask the experts from my distribution, how to solve the conflict withlibressl-devel-4.0.0
.S | Name | Summary | Type ---+--------------------------------------+-------------------------------------------------------------------------+------ | libknet1-crypto-openssl-plugin | Provides libknet1 openssl support | Paket | libopenssl-1_1-devel | Development files for OpenSSL | Paket | libopenssl-1_1-devel-32bit | Development files for OpenSSL | Paket | libopenssl-3-devel | Development files for OpenSSL | Paket | libopenssl-3-devel-32bit | Development files for OpenSSL | Paket | libopenssl-3-fips-provider | OpenSSL FIPS provider | Paket | libopenssl-3-fips-provider-32bit | OpenSSL FIPS provider | Paket | libopenssl-3-fips-provider-x86-64-v3 | OpenSSL FIPS provider | Paket | libopenssl-devel | Enthält Dateien und Bibliotheken, die zum Programmieren benötigt werden | Paket | libopenssl-fips-provider | Enthält Dateien und Bibliotheken, die zum Programmieren benötigt werden | Paket i | libopenssl1_0_0 | Secure Sockets and Transport Layer Security | Paket | libopenssl1_1 | Secure Sockets and Transport Layer Security | Paket | libopenssl1_1-32bit | Secure Sockets and Transport Layer Security | Paket i | libopenssl3 | Secure Sockets and Transport Layer Security | Paket i | libopenssl3-32bit | Secure Sockets and Transport Layer Security | Paket i | libopenssl3-x86-64-v3 | Secure Sockets and Transport Layer Security | Paket | libxmlsec1-openssl1 | OpenSSL crypto plugin for XML Security Library | Paket i | openssl | Secure Sockets and Transport Layer Security | Paket | openssl-1_1 | Secure Sockets and Transport Layer Security | Paket | openssl-1_1-doc | Zusätzliche Paket-Dokumentation | Paket i | openssl-3 | Secure Sockets and Transport Layer Security | Paket | openssl-3-doc | Manpages and additional documentation for openssl | Paket | openssl-engine-libp11 | Library Implementing a Small Layer on Top of PKCS#11 API | Paket | openssl-pkcs11-sign-provider | OpenSSL Provider for asymmetric operations with private PKCS#11 keys | Paket | openssl_tpm2_engine | OpenSSL TPM 2.0 interface engine plugin | Paket | openssl_tpm_engine | OpenSSL TPM interface engine plugin | Paket | perl-Crypt-OpenSSL-Bignum | OpenSSL's multiprecision integer arithmetic | Paket | perl-Crypt-OpenSSL-Guess | Guess OpenSSL include path | Paket | perl-Crypt-OpenSSL-Random | OpenSSL/LibreSSL pseudo-random number generator access | Paket | perl-Crypt-OpenSSL-RSA | RSA encoding and decoding, using the openSSL libraries | Paket | php8-openssl | OpenSSL-Integration für PHP | Paket | python310-pyOpenSSL | Python wrapper module around the OpenSSL library | Paket i | python311-pyOpenSSL | Python wrapper module around the OpenSSL library | Paket | python312-pyOpenSSL | Python wrapper module around the OpenSSL library | Paket | tpm2-openssl | OpenSSL 3 Engine for TPM2 devices | Paket | xmlsec1-openssl-devel | OpenSSL crypto plugin for XML Security Library | Paket
-
-
@MasterQ said in Qt building from sources - qtopcua errors:
the first is xcb
XCB is required if you want your app to run with X11.
To find out why it is disabled check the configure log.
Usually some dev packages are missing. -
see my thread