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. How to build Qt on system without a GUI?
QtWS25 Last Chance

How to build Qt on system without a GUI?

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
92 Posts 7 Posters 25.8k 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.
  • Pavel_47P Pavel_47

    Yes, at very first time I executed these commands (as it's suggested here https://wiki.qt.io/RaspberryPi2EGLFS):
    rsync -avz pi@raspberrypi.local:/lib sysroot
    rsync -avz pi@raspberrypi.local:/usr/include sysroot/usr
    rsync -avz pi@raspberrypi.local:/usr/lib sysroot/usr
    rsync -avz pi@raspberrypi.local:/opt/vc sysroot/opt

    Then I did 3 or 4 other attempts to build, but at each of these attempts I didn't proceed with resync with RPi.
    Anyway one thing escapes me .... should I keep connection with RPi while running toolchain build on host ?

    jsulmJ Offline
    jsulmJ Offline
    jsulm
    Lifetime Qt Champion
    wrote on last edited by
    #33

    @Pavel_47 said in How to build Qt on system without a GUI?:

    should I keep connection with RPi while running toolchain build on host ?

    No, you just need to sync your sysroot.

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

    1 Reply Last reply
    0
    • Pavel_47P Offline
      Pavel_47P Offline
      Pavel_47
      wrote on last edited by
      #34

      I've checked the location of xkbcommon-compose.h. It's Ok:
      alt text
      Then I've tried to compile this:

      #include <xkbcommon/xkbcommon-compose.h>
      int main() {}
      

      It was also Ok

      jsulmJ 1 Reply Last reply
      0
      • Pavel_47P Pavel_47

        I've checked the location of xkbcommon-compose.h. It's Ok:
        alt text
        Then I've tried to compile this:

        #include <xkbcommon/xkbcommon-compose.h>
        int main() {}
        

        It was also Ok

        jsulmJ Offline
        jsulmJ Offline
        jsulm
        Lifetime Qt Champion
        wrote on last edited by
        #35

        @Pavel_47 Is it in your host system or sysroot?

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

        1 Reply Last reply
        0
        • Pavel_47P Offline
          Pavel_47P Offline
          Pavel_47
          wrote on last edited by
          #36

          @jsulm said in How to build Qt on system without a GUI?:

          @Pavel_47 Is it in your host system or sysroot?

          Sorry, I didn't understand what you mean ...
          The location of the screenshot: /usr/include/xkbcommon on my host
          The location of .c snippet (where I compiled it): ~/raspi/ on my host

          jsulmJ 1 Reply Last reply
          0
          • Pavel_47P Pavel_47

            @jsulm said in How to build Qt on system without a GUI?:

            @Pavel_47 Is it in your host system or sysroot?

            Sorry, I didn't understand what you mean ...
            The location of the screenshot: /usr/include/xkbcommon on my host
            The location of .c snippet (where I compiled it): ~/raspi/ on my host

            jsulmJ Offline
            jsulmJ Offline
            jsulm
            Lifetime Qt Champion
            wrote on last edited by
            #37

            @Pavel_47 said in How to build Qt on system without a GUI?:

            /usr/include/xkbcommon on my host

            That's the point: you need these headers in your sysroot!

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

            1 Reply Last reply
            2
            • Pavel_47P Offline
              Pavel_47P Offline
              Pavel_47
              wrote on last edited by
              #38

              Indeed !
              In ~/raspi/sysroot/usr/include/xkbcommon there is one less file comparing to /usr/include/xkbcommon ... and this missed file is precisely xkbcommon-compose.h.

              alt text

              So, I copy xkbcommon-compose.h from /usr/include/xkbcommon to ~/raspi/sysroot/usr/include/xkbcommon and then build Qt toolchain once more ?

              1 Reply Last reply
              0
              • Pavel_47P Offline
                Pavel_47P Offline
                Pavel_47
                wrote on last edited by
                #39

                I copied xkbcommon-compose.h from /usr/include/xkbcommon to ~/raspi/sysroot/usr/include/xkbcommon and then run make once more.
                And it failed one more time.
                Here is how it finished:
                alt text

                Any other suggestions ?

                Thanks.

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #40

                  As we already wrote: you need the library too. And built for your target.

                  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
                  1
                  • Pavel_47P Offline
                    Pavel_47P Offline
                    Pavel_47
                    wrote on last edited by
                    #41

                    You mean that the errors announce in the screenshot from previous message are still related to the xkbcommon issue ?
                    So I should ask xkbcommon developpers for makefile dedicated for RPi3. Correct ?
                    Let's say I got it, what next ? Where should I put xkbcommon built directory ... i.e. which location in ~/raspi/sysroot.
                    After all ... I wonder if someone already faced this issue ? Or this probles rose for the 1st time ? What about previous Qt releases ? There were no similar issues ?

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #42

                      It's a library that is now provided on all Linux flavours supported by the Qt project. Prior to that, it was bundled with Qt.

                      So what distribution are you running on your Pi ?

                      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
                      • Pavel_47P Offline
                        Pavel_47P Offline
                        Pavel_47
                        wrote on last edited by
                        #43

                        Linux raspberrypi 4.9.77-v7+

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #44

                          That's the kernel running on your target.

                          Are you using Raspbian ? Another distribution ?

                          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
                          • Pavel_47P Offline
                            Pavel_47P Offline
                            Pavel_47
                            wrote on last edited by
                            #45

                            Yes, I use raspbian "Jessie"

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #46

                              Then, AFAIR, you should have the library. So if it can't be found either:

                              • it wasn't synchronized properly back to your host machine
                              • the configure call has not been done from a clean state
                              • it's not the correct library that was found

                              For the first point you have to sync the library as well as the symbolic links pointing to it or re-create them in your host copy of the sysroot.

                              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
                              • Pavel_47P Offline
                                Pavel_47P Offline
                                Pavel_47
                                wrote on last edited by
                                #47

                                I did as you suggested:
                                (1) resync host wit RPi:
                                rsync -avz pi@raspberrypi.local:/lib sysroot
                                rsync -avz pi@raspberrypi.local:/usr/include sysroot/usr
                                rsync -avz pi@raspberrypi.local:/usr/lib sysroot/usr
                                rsync -avz pi@raspberrypi.local:/opt/vc sysroot/opt

                                (2) update symbolic names:
                                ./sysroot-relativelinks.py sysroot
                                Then rebuild Qt (rather tried to rebuild).
                                Here is what I got:
                                alt text

                                This time it's different ... but still fails

                                Pablo J. RoginaP 1 Reply Last reply
                                0
                                • Pavel_47P Pavel_47

                                  I did as you suggested:
                                  (1) resync host wit RPi:
                                  rsync -avz pi@raspberrypi.local:/lib sysroot
                                  rsync -avz pi@raspberrypi.local:/usr/include sysroot/usr
                                  rsync -avz pi@raspberrypi.local:/usr/lib sysroot/usr
                                  rsync -avz pi@raspberrypi.local:/opt/vc sysroot/opt

                                  (2) update symbolic names:
                                  ./sysroot-relativelinks.py sysroot
                                  Then rebuild Qt (rather tried to rebuild).
                                  Here is what I got:
                                  alt text

                                  This time it's different ... but still fails

                                  Pablo J. RoginaP Offline
                                  Pablo J. RoginaP Offline
                                  Pablo J. Rogina
                                  wrote on last edited by
                                  #48

                                  @Pavel_47 two things please:

                                  1. Your last screenshot doesn't seem to show exact error, I guess you should scroll up
                                  2. stop posting screenshots, paste text instead (it's easier for others to comment back on any line of output for instance...)

                                  Upvote the answer(s) that helped you solve the issue
                                  Use "Topic Tools" button to mark your post as Solved
                                  Add screenshots via postimage.org
                                  Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                                  1 Reply Last reply
                                  1
                                  • Pavel_47P Offline
                                    Pavel_47P Offline
                                    Pavel_47
                                    wrote on last edited by
                                    #49

                                    The log is huge.
                                    I scrolled up a few hundred lines - nothing that indicatedŝ errors.
                                    Concerning text instead of screenshots - Ok, I took note.

                                    1 Reply Last reply
                                    0
                                    • SGaistS Offline
                                      SGaistS Offline
                                      SGaist
                                      Lifetime Qt Champion
                                      wrote on last edited by
                                      #50

                                      Run the build with only one process you'll have the error closer.

                                      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
                                      • Pavel_47P Offline
                                        Pavel_47P Offline
                                        Pavel_47
                                        wrote on last edited by
                                        #51

                                        Yes, with one core the the log is more verbose.
                                        Here is what I got at the end:

                                        rm -f libcomposeplatforminputcontextplugin.so
                                        /home/pavel/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/pavel/raspi/sysroot -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -Wl,-rpath-link,/home/pavel/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/pavel/raspi/sysroot/lib/arm-linux-gnueabihf -shared -o libcomposeplatforminputcontextplugin.so .obj/qcomposeplatforminputcontextmain.o .obj/qcomposeplatforminputcontext.o .obj/moc_qcomposeplatforminputcontext.o  -L=/opt/vc/lib /home/pavel/raspi/qtbase/lib/libQt5Gui.so /home/pavel/raspi/qtbase/lib/libQt5Core.so /home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so -lpthread /home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libxkbcommon.so   
                                        .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::~QComposeInputContext()':
                                        qcomposeplatforminputcontext.cpp:(.text+0x34): undefined reference to `xkb_compose_state_unref'
                                        qcomposeplatforminputcontext.cpp:(.text+0x3c): undefined reference to `xkb_compose_table_unref'
                                        .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::reset()':
                                        qcomposeplatforminputcontext.cpp:(.text+0x80): undefined reference to `xkb_compose_state_reset'
                                        .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::ensureInitialized()':
                                        qcomposeplatforminputcontext.cpp:(.text+0x3bc): undefined reference to `xkb_compose_table_new_from_locale'
                                        qcomposeplatforminputcontext.cpp:(.text+0x3d0): undefined reference to `xkb_compose_state_new'
                                        .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::filterEvent(QEvent const*)':
                                        qcomposeplatforminputcontext.cpp:(.text+0x6ac): undefined reference to `xkb_compose_state_feed'
                                        qcomposeplatforminputcontext.cpp:(.text+0x6b4): undefined reference to `xkb_compose_state_get_status'
                                        qcomposeplatforminputcontext.cpp:(.text+0x6f8): undefined reference to `xkb_compose_state_get_utf8'
                                        qcomposeplatforminputcontext.cpp:(.text+0x72c): undefined reference to `xkb_compose_state_get_utf8'
                                        collect2: error: ld returned 1 exit status
                                        Makefile:247: recipe for target '../../../../plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so' failed
                                        make[4]: *** [../../../../plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so] Error 1
                                        make[4]: Leaving directory '/home/pavel/raspi/qtbase/src/plugins/platforminputcontexts/compose'
                                        Makefile:47: recipe for target 'sub-compose-make_first' failed
                                        make[3]: *** [sub-compose-make_first] Error 2
                                        make[3]: Leaving directory '/home/pavel/raspi/qtbase/src/plugins/platforminputcontexts'
                                        Makefile:129: recipe for target 'sub-platforminputcontexts-make_first' failed
                                        make[2]: *** [sub-platforminputcontexts-make_first] Error 2
                                        make[2]: Leaving directory '/home/pavel/raspi/qtbase/src/plugins'
                                        Makefile:778: recipe for target 'sub-plugins-make_first' failed
                                        make[1]: *** [sub-plugins-make_first] Error 2
                                        make[1]: Leaving directory '/home/pavel/raspi/qtbase/src'
                                        Makefile:50: recipe for target 'sub-src-make_first' failed
                                        make: *** [sub-src-make_first] Error 2
                                        
                                        

                                        Seem that problem is still related to xkb staff ...

                                        jsulmJ 1 Reply Last reply
                                        0
                                        • Pavel_47P Pavel_47

                                          Yes, with one core the the log is more verbose.
                                          Here is what I got at the end:

                                          rm -f libcomposeplatforminputcontextplugin.so
                                          /home/pavel/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++ -mfloat-abi=hard --sysroot=/home/pavel/raspi/sysroot -Wl,--no-undefined -Wl,-O1 -Wl,--enable-new-dtags -Wl,-z,origin -Wl,-rpath,\$ORIGIN/../../lib -Wl,-rpath-link,/home/pavel/raspi/sysroot/opt/vc/lib -Wl,-rpath-link,/home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf -Wl,-rpath-link,/home/pavel/raspi/sysroot/lib/arm-linux-gnueabihf -shared -o libcomposeplatforminputcontextplugin.so .obj/qcomposeplatforminputcontextmain.o .obj/qcomposeplatforminputcontext.o .obj/moc_qcomposeplatforminputcontext.o  -L=/opt/vc/lib /home/pavel/raspi/qtbase/lib/libQt5Gui.so /home/pavel/raspi/qtbase/lib/libQt5Core.so /home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libGLESv2.so -lpthread /home/pavel/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libxkbcommon.so   
                                          .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::~QComposeInputContext()':
                                          qcomposeplatforminputcontext.cpp:(.text+0x34): undefined reference to `xkb_compose_state_unref'
                                          qcomposeplatforminputcontext.cpp:(.text+0x3c): undefined reference to `xkb_compose_table_unref'
                                          .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::reset()':
                                          qcomposeplatforminputcontext.cpp:(.text+0x80): undefined reference to `xkb_compose_state_reset'
                                          .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::ensureInitialized()':
                                          qcomposeplatforminputcontext.cpp:(.text+0x3bc): undefined reference to `xkb_compose_table_new_from_locale'
                                          qcomposeplatforminputcontext.cpp:(.text+0x3d0): undefined reference to `xkb_compose_state_new'
                                          .obj/qcomposeplatforminputcontext.o: In function `QComposeInputContext::filterEvent(QEvent const*)':
                                          qcomposeplatforminputcontext.cpp:(.text+0x6ac): undefined reference to `xkb_compose_state_feed'
                                          qcomposeplatforminputcontext.cpp:(.text+0x6b4): undefined reference to `xkb_compose_state_get_status'
                                          qcomposeplatforminputcontext.cpp:(.text+0x6f8): undefined reference to `xkb_compose_state_get_utf8'
                                          qcomposeplatforminputcontext.cpp:(.text+0x72c): undefined reference to `xkb_compose_state_get_utf8'
                                          collect2: error: ld returned 1 exit status
                                          Makefile:247: recipe for target '../../../../plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so' failed
                                          make[4]: *** [../../../../plugins/platforminputcontexts/libcomposeplatforminputcontextplugin.so] Error 1
                                          make[4]: Leaving directory '/home/pavel/raspi/qtbase/src/plugins/platforminputcontexts/compose'
                                          Makefile:47: recipe for target 'sub-compose-make_first' failed
                                          make[3]: *** [sub-compose-make_first] Error 2
                                          make[3]: Leaving directory '/home/pavel/raspi/qtbase/src/plugins/platforminputcontexts'
                                          Makefile:129: recipe for target 'sub-platforminputcontexts-make_first' failed
                                          make[2]: *** [sub-platforminputcontexts-make_first] Error 2
                                          make[2]: Leaving directory '/home/pavel/raspi/qtbase/src/plugins'
                                          Makefile:778: recipe for target 'sub-plugins-make_first' failed
                                          make[1]: *** [sub-plugins-make_first] Error 2
                                          make[1]: Leaving directory '/home/pavel/raspi/qtbase/src'
                                          Makefile:50: recipe for target 'sub-src-make_first' failed
                                          make: *** [sub-src-make_first] Error 2
                                          
                                          

                                          Seem that problem is still related to xkb staff ...

                                          jsulmJ Offline
                                          jsulmJ Offline
                                          jsulm
                                          Lifetime Qt Champion
                                          wrote on last edited by
                                          #52

                                          @Pavel_47 said in How to build Qt on system without a GUI?:

                                          undefined reference to `xkb_compose_state_get_utf8'

                                          You're not linking against xkb lib

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

                                          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