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. build qt6 on arm64 debian10 or Ubuntu 18
QtWS25 Last Chance

build qt6 on arm64 debian10 or Ubuntu 18

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
11 Posts 5 Posters 1.6k Views
  • 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.
  • K Offline
    K Offline
    kero990
    wrote on 22 Mar 2024, 08:50 last edited by kero990
    #1

    For some embarrassing reasons, I need to use qt6 on the arm64 device. Unfortunately, The device only has debian10 or Ubuntu 18.

    I didn't find any instructions on whether to build qt6 on such an old system on Google, but there are many clear instructions, at least debian11 or Ubuntu 20.

    Fortunately, I found a project on github,
    https://github.com/techcaotri/ubuntu-18.04-build-qt6

    According to this method, I tried on Debian10 (Ubuntu 18 is missing a lot of packages, which is not as smooth as script). After eliminating many problems, the compilation progress has reached 40%, and the following errors are reported

    [ 44%] Building CXX object qttools/src/qdoc/CMakeFiles/qdoc.dir/docbookgenerator.cpp.o
    [ 44%] Generating prl file for target BodymovinPrivate
    clang: warning: -lstdc++fs: 'linker' input unused [-Wunused-command-line-argument]
    [ 44%] Running moc --collect-json for target BodymovinPrivate
    [ 44%] Building CXX object qtlottie/src/bodymovin/CMakeFiles/BodymovinPrivate.dir/cmake_pch.hxx.pch
    clang: warning: -lstdc++fs: 'linker' input unused [-Wunused-command-line-argument]
    /root/qt-everywhere-src-6.4.3/qttools/src/qdoc/docbookgenerator.cpp:2463:36: error: no member named 'transform_reduce' in namespace 'std'
                QString details = std::transform_reduce(
                                  ~~~~~^
    1 error generated.                            
    

    Strangely, I added the relevant header files in according to Google's suggestions, but the compilation did not change at all.

    #include <algorithm>
    

    Can someone guide me how to do?

    In fact, I didn't find the header file “algorithm” in the include of clang12. I don't know whether this is related to clang12, but the error is not an include error

    Or can I skip compiling qdoc? I understand that it should be a relatively unimportant module. However, I did not find the relevant options in configure.

    Supplementary notes:
    My configuration command is as follows:

    ./configure - shared - prefix/opt/runtime/qt6- opensource - confirm license - nomake examples - nomake tests - skip qtserialbus - skip qtserialport - grounded xcb xinput - release - qt libpng - system zlib - qt pcre - libinput - fontconfig - system freetype - system harfbuzz - xcb xlib - xcb - qpa xcb - no path - no directfb - no use gold linker -- DCMAKE_C_COMPILER: STRING=/usr/bin/clang-12- DCMAKE_CXX_COMPILER: STRING=/usr/bin/clang++-12- DCMAKE_CXX_FLAGS="- lstdc++fs - std=c++17"
    
    J 1 Reply Last reply 22 Mar 2024, 10:06
    0
    • K kero990
      22 Mar 2024, 08:50

      For some embarrassing reasons, I need to use qt6 on the arm64 device. Unfortunately, The device only has debian10 or Ubuntu 18.

      I didn't find any instructions on whether to build qt6 on such an old system on Google, but there are many clear instructions, at least debian11 or Ubuntu 20.

      Fortunately, I found a project on github,
      https://github.com/techcaotri/ubuntu-18.04-build-qt6

      According to this method, I tried on Debian10 (Ubuntu 18 is missing a lot of packages, which is not as smooth as script). After eliminating many problems, the compilation progress has reached 40%, and the following errors are reported

      [ 44%] Building CXX object qttools/src/qdoc/CMakeFiles/qdoc.dir/docbookgenerator.cpp.o
      [ 44%] Generating prl file for target BodymovinPrivate
      clang: warning: -lstdc++fs: 'linker' input unused [-Wunused-command-line-argument]
      [ 44%] Running moc --collect-json for target BodymovinPrivate
      [ 44%] Building CXX object qtlottie/src/bodymovin/CMakeFiles/BodymovinPrivate.dir/cmake_pch.hxx.pch
      clang: warning: -lstdc++fs: 'linker' input unused [-Wunused-command-line-argument]
      /root/qt-everywhere-src-6.4.3/qttools/src/qdoc/docbookgenerator.cpp:2463:36: error: no member named 'transform_reduce' in namespace 'std'
                  QString details = std::transform_reduce(
                                    ~~~~~^
      1 error generated.                            
      

      Strangely, I added the relevant header files in according to Google's suggestions, but the compilation did not change at all.

      #include <algorithm>
      

      Can someone guide me how to do?

      In fact, I didn't find the header file “algorithm” in the include of clang12. I don't know whether this is related to clang12, but the error is not an include error

      Or can I skip compiling qdoc? I understand that it should be a relatively unimportant module. However, I did not find the relevant options in configure.

      Supplementary notes:
      My configuration command is as follows:

      ./configure - shared - prefix/opt/runtime/qt6- opensource - confirm license - nomake examples - nomake tests - skip qtserialbus - skip qtserialport - grounded xcb xinput - release - qt libpng - system zlib - qt pcre - libinput - fontconfig - system freetype - system harfbuzz - xcb xlib - xcb - qpa xcb - no path - no directfb - no use gold linker -- DCMAKE_C_COMPILER: STRING=/usr/bin/clang-12- DCMAKE_CXX_COMPILER: STRING=/usr/bin/clang++-12- DCMAKE_CXX_FLAGS="- lstdc++fs - std=c++17"
      
      J Offline
      J Offline
      jsulm
      Lifetime Qt Champion
      wrote on 22 Mar 2024, 10:06 last edited by
      #2

      @kero990 said in build qt6 on arm64 debian10 or Ubuntu 18:

      /root/qt-everywhere-src-6.4.3/qttools/src/qdoc/docbookgenerator.cpp:2463:36: error: no member named 'transform_reduce' in namespace 'std'
      QString details = std::transform_reduce(

      I think your compiler is too old. You need at least C++17 capable compiler.

      https://forum.qt.io/topic/113070/qt-code-of-conduct

      K 1 Reply Last reply 25 Mar 2024, 06:16
      3
      • J jsulm
        22 Mar 2024, 10:06

        @kero990 said in build qt6 on arm64 debian10 or Ubuntu 18:

        /root/qt-everywhere-src-6.4.3/qttools/src/qdoc/docbookgenerator.cpp:2463:36: error: no member named 'transform_reduce' in namespace 'std'
        QString details = std::transform_reduce(

        I think your compiler is too old. You need at least C++17 capable compiler.

        K Offline
        K Offline
        kero990
        wrote on 25 Mar 2024, 06:16 last edited by
        #3

        @jsulm said in build qt6 on arm64 debian10 or Ubuntu 18:

        I think your compiler is too old. You need at least C++17 capable compiler.

        Of course, I know that the compiler is too old, but I am not satisfied with the status quo: that is, all qt6 projects cannot run natively on debian10/Ubuntu 18.

        I can't rule out the above error, so I'm going to take the second place, hoping to block the compilation of qdoc. Unfortunately, there is no option to do this, and qdoc is even necessary.

        In fact, gcc8 and clang12 should support most c++17, so it is not impossible in theory
        Maybe i should try an earlier version of qt6. What I'm trying to do now is 6.4.3

        R 1 Reply Last reply 25 Mar 2024, 06:42
        0
        • K kero990
          25 Mar 2024, 06:16

          @jsulm said in build qt6 on arm64 debian10 or Ubuntu 18:

          I think your compiler is too old. You need at least C++17 capable compiler.

          Of course, I know that the compiler is too old, but I am not satisfied with the status quo: that is, all qt6 projects cannot run natively on debian10/Ubuntu 18.

          I can't rule out the above error, so I'm going to take the second place, hoping to block the compilation of qdoc. Unfortunately, there is no option to do this, and qdoc is even necessary.

          In fact, gcc8 and clang12 should support most c++17, so it is not impossible in theory
          Maybe i should try an earlier version of qt6. What I'm trying to do now is 6.4.3

          R Offline
          R Offline
          Ronel_qtmaster
          wrote on 25 Mar 2024, 06:42 last edited by
          #4

          @kero990 if i were you i would try with official version.You will waste a lot of time especially if you don't have enough experience, so why not try firstly with Ubuntu 20?

          1 Reply Last reply
          0
          • K Offline
            K Offline
            kero990
            wrote on 26 Mar 2024, 07:01 last edited by
            #5

            Now I have compiled 100% with the same configure and cmake in the qtbase directory, and I have successfully made install.
            Is this different from compiling in the code root directory? If modules are missing in this compilation, can I compile these modules separately and integrate them into the final qt6 release

            1 Reply Last reply
            0
            • K Offline
              K Offline
              kero990
              wrote on 26 Mar 2024, 08:55 last edited by
              #6
              This post is deleted!
              1 Reply Last reply
              0
              • K Offline
                K Offline
                kero990
                wrote on 29 Mar 2024, 07:18 last edited by
                #7

                I have successfully compiled qtbase and then proceeded to other top-level directories to use cmake to build and install other modules.
                The current issue is that the qmldom module always throws an error during compilation in the qtdeclarative directory.

                error: no matching function for call to object of type 'QQmlJS::Dom::DirectVisitor' (aka 'function_ref<bool (const QQmlJS::Dom::PathEls::PathComponent &, qxp::function_ref<QQmlJS::Dom::DomItem ()>)>')
                return visitor(c, lazyWrap);
                ^~~~~~~
                

                I don't know how to fix this error and it seems like qmldom cannot be excluded from the compilation. However, qtdeclarative is too important to be omitted, so currently I can only use qtbase.

                1 Reply Last reply
                0
                • _ Offline
                  _ Offline
                  _ba_
                  wrote on 27 Sept 2024, 08:57 last edited by
                  #8

                  @kero990
                  I've an similiar QQmlJS error message during cross compiling Qt6.7.2 to armv7:

                  qt-everywhere-src-6.7.2/qtdeclarative/src/qmldom/qqmldomitem_p.h:1128:10: error: no matching function for call to ‘QQmlJS::Dom::DomItem::dvItem(QQmlJS::Dom::DirectVisitor&, const QQmlJS::Dom::PathEls::PathComponent&, QQmlJS::Dom::DomItem::dvReference(QQmlJS::Dom::DirectVisitor, const QQmlJS::Dom::PathEls::PathComponent&, QQmlJS::Dom::Path) const::<lambda()>) const’
                           });
                  

                  Build environment: Host Ubuntu 22.04, qt-everywhere-src-6.7.2, gcc-arm-8.3-2019.02-x86_64-arm-linux-gnueabi, using Qt's 'configure'

                  1 Reply Last reply
                  0
                  • _ Offline
                    _ Offline
                    _ba_
                    wrote on 1 Oct 2024, 06:27 last edited by
                    #9

                    Did anybody fixed the problem?

                    Christian EhrlicherC 1 Reply Last reply 1 Oct 2024, 06:39
                    0
                    • _ _ba_
                      1 Oct 2024, 06:27

                      Did anybody fixed the problem?

                      Christian EhrlicherC Offline
                      Christian EhrlicherC Offline
                      Christian Ehrlicher
                      Lifetime Qt Champion
                      wrote on 1 Oct 2024, 06:39 last edited by
                      #10

                      @_ba_ said in build qt6 on arm64 debian10 or Ubuntu 18:

                      Did anybody fixed the problem?

                      Your gcc is too old: https://doc.qt.io/qt-6/supported-platforms.html

                      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 21 Oct 2024, 04:22
                      1
                      • Christian EhrlicherC Christian Ehrlicher
                        1 Oct 2024, 06:39

                        @_ba_ said in build qt6 on arm64 debian10 or Ubuntu 18:

                        Did anybody fixed the problem?

                        Your gcc is too old: https://doc.qt.io/qt-6/supported-platforms.html

                        _ Offline
                        _ Offline
                        _ba_
                        wrote on 21 Oct 2024, 04:22 last edited by
                        #11

                        @Christian-Ehrlicher: With Ubuntu's cross compiler "arm-linux-gnueabi-..." a build was possible, not yet tested on target.
                        Thanks!

                        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