Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Problems building 5.6.2 on Raspberry Pi 5 with Raspbian 12 (Debian Bookworm)
Qt 6.11 is out! See what's new in the release blog

Problems building 5.6.2 on Raspberry Pi 5 with Raspbian 12 (Debian Bookworm)

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
13 Posts 3 Posters 604 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    RobertPHeller
    wrote last edited by
    #1

    I am trying to build QT 5.6.2 on my Raspberry Pi 5 (which is running Raspbian 12, which ships with 5.4.2). I need 5.6.2 for Fritzing 1.0.7. I am getting this error when building:

    cd qtbase/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/qtbase.pro -o Makefile ) && make -f Makefile 
    make[1]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase'
    cd src/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/src.pro -o Makefile ) && make -f Makefile 
    make[2]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src'
    cd tools/bootstrap/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/bootstrap/bootstrap.pro -o Makefile ) && make -f Makefile 
    make[3]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/bootstrap'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/bootstrap'
    cd tools/moc/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/moc/moc.pro -o Makefile ) && make -f Makefile 
    make[3]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/moc'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/moc'
    cd tools/rcc/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/rcc/rcc.pro -o Makefile ) && make -f Makefile 
    make[3]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/rcc'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/rcc'
    cd corelib/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib/corelib.pro -o Makefile ) && make -f Makefile 
    make[3]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/corelib'
    cd tools/qlalr/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/qlalr/qlalr.pro -o Makefile ) && make -f Makefile 
    make[3]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/qlalr'
    make[3]: Nothing to be done for 'first'.
    make[3]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/tools/qlalr'
    cd network/ && ( test -e Makefile || /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/bin/qmake /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/network/network.pro -o Makefile ) && make -f Makefile 
    make[3]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/network'
    g++ -c -include .pch/Qt5Network -pipe -O2 -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_MTDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DQT_NO_USING_NAMESPACE -DQT_BUILD_NETWORK_LIB -DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT -DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS -DQT_DISABLE_DEPRECATED_BEFORE=0x050000 -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_CORE_LIB -I. -Ikernel -I../../include -I../../include/QtNetwork -I../../include/QtNetwork/5.6.2 -I../../include/QtNetwork/5.6.2/QtNetwork -I../../include/QtCore/5.6.2 -I../../include/QtCore/5.6.2/QtCore -I../../include/QtCore -I.moc -I../../mkspecs/linux-g++ -o .obj/qsslcertificate_openssl.o ssl/qsslcertificate_openssl.cpp
    ssl/qsslcertificate_openssl.cpp: In function ‘uint qHash(const QSslCertificate&, uint)’:
    ssl/qsslcertificate_openssl.cpp:63:30: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’}
       63 |         return qHashBits(x509->sha1_hash, SHA_DIGEST_LENGTH, seed);
          |                              ^~
    In file included from /usr/include/openssl/crypto.h:38,
                     from /usr/include/openssl/comp.h:22,
                     from /usr/include/openssl/ssl.h:30,
                     from ../../include/QtNetwork/5.6.2/QtNetwork/private/../../../../../src/network/ssl/qsslcontext_openssl_p.h:53,
                     from ../../include/QtNetwork/5.6.2/QtNetwork/private/qsslcontext_openssl_p.h:1,
                     from ssl/qsslsocket_p.h:55,
                     from ssl/qsslsocket_openssl_p.h:63,
                     from ssl/qsslsocket_openssl_symbols_p.h:64,
                     from ssl/qsslcertificate_openssl.cpp:35:
    /usr/include/openssl/types.h:159:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’}
      159 | typedef struct x509_st X509;
          |                ^~~~~~~
    ssl/qsslcertificate_openssl.cpp: In member function ‘QByteArray QSslCertificate::version() const’:
    ssl/qsslcertificate_openssl.cpp:87:68: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’}
       87 |             QByteArray::number(qlonglong(q_ASN1_INTEGER_get(d->x509->cert_info->version)) + 1);
          |                                                                    ^~
    /usr/include/openssl/types.h:159:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’}
      159 | typedef struct x509_st X509;
          |                ^~~~~~~
    ssl/qsslcertificate_openssl.cpp: In member function ‘QByteArray QSslCertificate::serialNumber() const’:
    ssl/qsslcertificate_openssl.cpp:96:45: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’}
       96 |         ASN1_INTEGER *serialNumber = d->x509->cert_info->serialNumber;
          |                                             ^~
    /usr/include/openssl/types.h:159:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’}
      159 | typedef struct x509_st X509;
          |                ^~~~~~~
    ssl/qsslcertificate_openssl.cpp: In member function ‘QSslKey QSslCertificate::publicKey() const’:
    ssl/qsslcertificate_openssl.cpp:232:32: error: invalid use of incomplete type ‘X509’ {aka ‘struct x509_st’}
      232 |     X509_PUBKEY *xkey = d->x509->cert_info->key;
          |                                ^~
    /usr/include/openssl/types.h:159:16: note: forward declaration of ‘X509’ {aka ‘struct x509_st’}
      159 | typedef struct x509_st X509;
          |                ^~~~~~~
    ssl/qsslcertificate_openssl.cpp:236:29: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      236 |     if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_RSA) {
          |                             ^~
    /usr/include/openssl/types.h:107:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      107 | typedef struct evp_pkey_st EVP_PKEY;
          |                ^~~~~~~~~~~
    ssl/qsslcertificate_openssl.cpp:240:36: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      240 |     } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DSA) {
          |                                    ^~
    /usr/include/openssl/types.h:107:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      107 | typedef struct evp_pkey_st EVP_PKEY;
          |                ^~~~~~~~~~~
    ssl/qsslcertificate_openssl.cpp:245:36: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      245 |     } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_EC) {
          |                                    ^~
    /usr/include/openssl/types.h:107:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      107 | typedef struct evp_pkey_st EVP_PKEY;
          |                ^~~~~~~~~~~
    ssl/qsslcertificate_openssl.cpp:250:36: error: invalid use of incomplete type ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      250 |     } else if (q_EVP_PKEY_type(pkey->type) == EVP_PKEY_DH) {
          |                                    ^~
    /usr/include/openssl/types.h:107:16: note: forward declaration of ‘EVP_PKEY’ {aka ‘struct evp_pkey_st’}
      107 | typedef struct evp_pkey_st EVP_PKEY;
          |                ^~~~~~~~~~~
    make[3]: *** [Makefile:22139: .obj/qsslcertificate_openssl.o] Error 1
    make[3]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/network'
    make[2]: *** [Makefile:191: sub-network-make_first] Error 2
    make[2]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src'
    make[1]: *** [Makefile:46: sub-src-make_first] Error 2
    make[1]: Leaving directory '/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase'
    make: *** [Makefile:73: module-qtbase-make_first] Error 2
    

    The version of libssl installed is 3.0.20-1~deb12u2+rpt1.

    1 Reply Last reply
    0
    • Christian EhrlicherC Online
      Christian EhrlicherC Online
      Christian Ehrlicher
      Lifetime Qt Champion
      wrote last edited by
      #2

      This ancient Qt version does not build with openssl 3.x - you need either openssl 1.x or disable ssl for the Qt build.

      Qt Online Installer direct download: https://download.qt.io/official_releases/online_installers/
      Visit the Qt Academy at https://academy.qt.io/catalog

      1 Reply Last reply
      0
      • R Offline
        R Offline
        RobertPHeller
        wrote last edited by
        #3

        OK, after disabling openssl (./configure ... -no-openssl), I am getting this error:

        qxcbconnection_xi2.cpp:701:80: error: operator '&&' has no right operand
          701 | #elif LIBXI_MAJOR == 1 && (LIBXI_MINOR < 7 || (LIBXI_MINOR == 7 && LIBXI_PATCH < 4))
              |
        ```                                                                                ^
        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote last edited by
          #4

          Hi and welcome to devnet,

          Might be a silly question but did you do a cleanup before reconfiguring ?

          Also, please use out of source builds, it makes things way easier.

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          1 Reply Last reply
          0
          • R Offline
            R Offline
            RobertPHeller
            wrote last edited by
            #5

            I did a "make clean", is that enough?

            1 Reply Last reply
            0
            • R Offline
              R Offline
              RobertPHeller
              wrote last edited by
              #6

              I cleared everything, unpacked the source tar fresh and created a BUILD directory and started the build over. Make crashes at the same place.

              1 Reply Last reply
              0
              • R Offline
                R Offline
                RobertPHeller
                wrote last edited by RobertPHeller
                #7

                I tried with -no-xcb, but now make is failing here:

                make[7]: Entering directory '/home/heller/qt-everywhere-opensource-src-5.6.2/BUILD/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice'
                g++ -c -pipe -O2 -std=c++1z -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -Wall -W -D_REENTRANT -fPIC -DQT_NO_MTDEV -DQT_NO_TSLIB -DQT_NO_LIBINPUT -DMESA_EGL_NO_X11_HEADERS -DQT_NO_EXCEPTIONS -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN -DQT_EGLFS_DEVICE_LIB_LIB -DQT_PLATFORMSUPPORT_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice -I. -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/plugins/platforms/eglfs -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include -I../../../../../../include -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtPlatformSupport -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtPlatformSupport/5.6.2 -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtPlatformSupport/5.6.2/QtPlatformSupport -I../../../../../../include/QtPlatformSupport -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtGui/5.6.2 -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtGui/5.6.2/QtGui -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtGui -I../../../../../../include/QtGui -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore/5.6.2 -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore/5.6.2/QtCore -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/include/QtCore -I../../../../../../include/QtCore -I.moc -I/home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/mkspecs/linux-g++ -o .obj/qeglfskmsegldevicemain.o /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicemain.cpp
                In file included from /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldeviceintegration.h:49,
                                 from /home/heller/qt-everywhere-opensource-src-5.6.2/qtbase/src/plugins/platforms/eglfs/deviceintegration/eglfs_kms_egldevice/qeglfskmsegldevicemain.cpp:34:
                /usr/include/xf86drm.h:40:10: fatal error: drm.h: No such file or directory
                   40 | #include <drm.h>
                
                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote last edited by
                  #8

                  Might be a silly question but are you sure you installed all development dependencies ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • R Offline
                    R Offline
                    RobertPHeller
                    wrote last edited by RobertPHeller
                    #9

                    I think so. drm.h is actually installed:

                    marchhare% locate drm.h|grep '/drm.h$'
                    /usr/include/drm/drm.h
                    /usr/include/libdrm/drm.h
                    /usr/src/linux-headers-6.12.75+rpt-common-rpi/include/uapi/drm/drm.h
                    /usr/src/linux-headers-6.12.93+rpt-common-rpi/include/uapi/drm/drm.h
                    marchhare% dpkg-query -S /usr/include/drm/drm.h
                    linux-libc-dev: /usr/include/drm/drm.h
                    marchhare% 
                    marchhare% dpkg-query -S /usr/include/libdrm/drm.h
                    libdrm-dev:arm64: /usr/include/libdrm/drm.h
                    marchhare% dpkg-query -S /usr/src/linux-headers-6.12.75+rpt-common-rpi/include/uapi/drm/drm.h
                    linux-headers-6.12.75+rpt-common-rpi: /usr/src/linux-headers-6.12.75+rpt-common-rpi/include/uapi/drm/drm.h
                    marchhare% dpkg-query -S /usr/src/linux-headers-6.12.93+rpt-common-rpi/include/uapi/drm/drm.h
                    linux-headers-6.12.93+rpt-common-rpi: /usr/src/linux-headers-6.12.93+rpt-common-rpi/include/uapi/drm/drm.h
                    

                    I don't know what is missing...

                    The configure script completed without problems -- wouldn't it crash if something essentual was missing?

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      RobertPHeller
                      wrote last edited by
                      #10

                      Wondering: should the build statement include -I/usr/include/libdrm :

                      marchhare% pkg-config libdrm --cflags-only-I
                      -I/usr/include/libdrm
                      

                      It doesn't. This would explain the problem. This suggests that there is a problem in the configure script or configure tests or the Makefiles (or the generation of the Makefiles).

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        RobertPHeller
                        wrote last edited by
                        #11

                        I edited the Makefile and added -I/usr/include/libdrm to the INCPATH and that cured things.,,

                        1 Reply Last reply
                        0
                        • R Offline
                          R Offline
                          RobertPHeller
                          wrote last edited by
                          #12

                          OK, now the build creashes here:

                          /home/heller/qt-everywhere-opensource-src-5.6.2/qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp: In member function ‘void SocketCanBackend::readSocket()’:
                          /home/heller/qt-everywhere-opensource-src-5.6.2/qtserialbus/src/plugins/canbus/socketcan/socketcanbackend.cpp:594:30: error: ‘SIOCGSTAMP’ was not declared in this scope; did you mean ‘SIOCGRARP’?
                           594 |         if (ioctl(canSocket, SIOCGSTAMP, &timeStamp) < 0) {
                               |                              ^~~~~~~~~~
                               |                              SIOCGRARP
                          make[5]: *** [Makefile:950: .obj/socketcanbackend.o] Error 1
                          
                          1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            RobertPHeller
                            wrote last edited by
                            #13

                            I edited socketcanbackend.cpp to include the missing include file (<linux/sockios.h>) and compiling is proceding...

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved