Failing to build Qt 6.7.3 from source on Slackware 15.0
-
I am not very familiar with the build process with QT, but maybe some of you can help to solve the issue.
Slackware 15.0
CMake: 3.29.2
Ninja: 1.12.1
GCC: 11.2.0
LLVM: 17.0.6
MESA: 24.0.1/usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated)) | ^ /tmp/snuk/qt-everywhere-src-6.7.3/qtopcua/src/opcua/x509/openssl_symbols.cpp:425:22: warning: 'EVP_PKEY_get1_EC_KEY' is deprecated [-Wdeprecated-declarations] 425 | DEFINEFUNC(EC_KEY *, EVP_PKEY_get1_EC_KEY, EVP_PKEY *a, a, return nullptr, return) | ^ /usr/include/openssl/evp.h:1390:1: note: 'EVP_PKEY_get1_EC_KEY' has been explicitly marked deprecated here 1390 | OSSL_DEPRECATEDIN_3_0 | ^ /usr/include/openssl/macros.h:206:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' 206 | # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) | ^ /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated)) | ^ /tmp/snuk/qt-everywhere-src-6.7.3/qtopcua/src/opcua/x509/openssl_symbols.cpp:426:23: warning: 'PEM_read_bio_EC_PUBKEY' is deprecated [-Wdeprecated-declarations] 426 | DEFINEFUNC4(EC_KEY *, PEM_read_bio_EC_PUBKEY, BIO *a, a, EC_KEY **b, b, pem_password_cb *c, c, void *d, d, return nullptr, return) | ^ /usr/include/openssl/pem.h:468:21: note: 'PEM_read_bio_EC_PUBKEY' has been explicitly marked deprecated here 468 | DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, EC_PUBKEY, EC_KEY) | ^ /usr/include/openssl/macros.h:206:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' 206 | # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) | ^ /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated)) | ^ /tmp/snuk/qt-everywhere-src-6.7.3/qtopcua/src/opcua/x509/openssl_symbols.cpp:427:18: warning: 'PEM_write_bio_EC_PUBKEY' is deprecated [-Wdeprecated-declarations] 427 | DEFINEFUNC2(int, PEM_write_bio_EC_PUBKEY, BIO *a, a, EC_KEY *b, b, return 0, return) | ^ /usr/include/openssl/pem.h:468:21: note: 'PEM_write_bio_EC_PUBKEY' has been explicitly marked deprecated here 468 | DECLARE_PEM_rw_attr(OSSL_DEPRECATEDIN_3_0, EC_PUBKEY, EC_KEY) | ^ /usr/include/openssl/macros.h:206:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0' 206 | # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0) | ^ /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED' 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated)) | ^ 40 warnings generated. [7130/12268] Automatic MOC for target SerialBus AutoMoc: /tmp/snuk/qt-everywhere-src-6.7.3/qtserialbus/src/serialbus/qcanframeprocessor.h: note: No relevant classes found. No output generated. [7755/12268] Automatic MOC for target Bluetooth AutoMoc: /tmp/snuk/qt-everywhere-src-6.7.3/qtconnectivity/src/bluetooth/qbluetoothdevicediscoveryagent_p.h: note: No relevant classes found. No output generated. AutoMoc: /tmp/snuk/qt-everywhere-src-6.7.3/qtconnectivity/src/bluetooth/qbluetoothservicediscoveryagent_p.h: note: No relevant classes found. No output generated. [8013/12268] Automatic QML type registration for target Graphs Warning: private/foreigntypes_p.h:: QTouch3DInputHandler is declared as foreign type, but cannot be found. Warning: private/foreigntypes_p.h:: Refusing to generate non-lowercase name TouchInputHandler3D for unknown foreign type [10733/12268] Building CXX object qt3d/src/plugins/sceneparsers/assimp/CMakeFiles/AssimpSceneImportPlugin.dir/__/__/__/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.cpp.o In file included from /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.cpp:44: In file included from /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.h:46: /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/Common/Maybe.h:85:5: warning: definition of implicit copy assignment operator for 'Maybe<aiColor3D>' is deprecated because it has a user-declared copy constructor [-Wdeprecated-copy] 85 | Maybe(const Maybe &) = delete; | ^ /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.cpp:289:11: note: in implicit copy assignment operator for 'Assimp::Maybe<aiColor3D>' first required here 289 | value = Maybe<aiColor3D>(v); | ^ In file included from /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.cpp:44: In file included from /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.h:46: /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/Common/Maybe.h:85:5: warning: definition of implicit copy assignment operator for 'Maybe<float>' is deprecated because it has a user-declared copy constructor [-Wdeprecated-copy] 85 | Maybe(const Maybe &) = delete; | ^ /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/3rdparty/assimp/src/code/AssetLib/Obj/ObjFileMtlImporter.cpp:318:15: note: in implicit copy assignment operator for 'Assimp::Maybe<float>' first required here 318 | value = Maybe<ai_real>(fast_atof(&m_buffer[0])); | ^ 2 warnings generated. [10803/12268] Building CXX object qt3d/src/plugins/renderers/opengl/CMakeFiles/OpenGLRendererPlugin.dir/graphicshelpers/submissioncontext.cpp.o /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp:337:21: warning: extra tokens at end of #ifndef directive [-Wextra-tokens] 337 | #ifndef GL_BACK_LEFT: | ^ | // /tmp/snuk/qt-everywhere-src-6.7.3/qt3d/src/plugins/renderers/opengl/graphicshelpers/submissioncontext.cpp:342:22: warning: extra tokens at end of #ifndef directive [-Wextra-tokens] 342 | #ifndef GL_BACK_RIGHT: | ^ | // 2 warnings generated. [12083/12268] Linking CXX shared module qtbase/lib64/qt6/qml/QtWebView/libqtwebviewquickplugin.so FAILED: qtwebengine/src/core/Release/x86_64/QtWebEngineCore.stamp qtwebengine/src/core/Release/x86_64/obj/tools/v8_context_snapshot/v8_context_snapshot.stamp qtwebengine/src/core/Release/x86_64/QtWebEngineCore /tmp/snuk/qt-everywhere-src-6.7.3/build/qtwebengine/src/core/Release/x86_64/QtWebEngineCore.stamp /tmp/snuk/qt-everywhere-src-6.7.3/build/qtwebengine/src/core/Release/x86_64/obj/tools/v8_context_snapshot/v8_context_snapshot.stamp /tmp/snuk/qt-everywhere-src-6.7.3/build/qtwebengine/src/core/Release/x86_64/QtWebEngineCore cd /tmp/snuk/qt-everywhere-src-6.7.3/build/qtwebengine/src/core && /usr/bin/ninja -C /tmp/snuk/qt-everywhere-src-6.7.3/build/qtwebengine/src/core/Release/x86_64 QtWebEngineCore ninja: build stopped: subcommand failed.
-
Well, to begin with, Slackware isn’t an officially supported platform. That doesn’t mean Qt can’t be compiled or won’t work if installed in a binary version.
Please check the documentation thoroughly and make sure you have all necessary libraries and headers installed. IIRC Slackware doesn’t resolve dependencies automatically, so I can’t guarantee that even this works.
To start with: which SSL version are you using?
-
@Axel-Spoerl Well, QT6-6.6.3 was the last successfully built/installed version. Anway, OpenSSL1 = 1.1.1 and OpenSSL 3.4.0 are installed. Thanks.
-
@jsulm said in Failing to build Qt 6.7.3 from source on Slackware 15.0:
@snuk What you show are only warnings, not errors. You should look for the first error.
It is a bit odd, but the were no errors at all. Anyway, I've modfied my scripts to build Qt and QtWebEngine separately.
-
Seems to me that the linker failed.
Have you installed 6.7.3 from scratch into a clean build tree?
Or have you checked out 6.7.3 in the source tree and just re-ran ninja in the same build tree? -
@Axel-Spoerl Indeed, I've installed 6.7.3 into a clean build tree. The most time I built project like this into chroot environments. Your are possibly right, there is something wrong with the linker. Anyway, I uploaded a longer log to my repo.
-
Hi,
QtWebEngine doesn't compile because of some dependency mismatch.
Better try a supported platform, or try to compile without QtWebEngine. -
@Axel-Spoerl said in Failing to build Qt 6.7.3 from source on Slackware 15.0:
Hi,
QtWebEngine doesn't compile because of some dependency mismatch.Which dependencies?
-
I don’t know, the log doesn’t say that. When you try to compile Qt on an unsupported platform, you’re on your own. Slackware is particularly problematic, because it doesn’t resolve dependencies automatically.
Since Qt fails compiling the Chromium 3rd party module, you could try whether there is a tutorial how to compile chromium on its own for Slackware and which packages are required for that. It would at least solve this problem. Can’t guarantee, that another problem will occur once QtWebengine works.