Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Cross compile Qt 5.7 for raspberry pi 3 problem : font (text words) in application not showing up during running
QtWS25 Last Chance

Cross compile Qt 5.7 for raspberry pi 3 problem : font (text words) in application not showing up during running

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
raspberry pi
33 Posts 11 Posters 29.4k 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.
  • M Malachi
    7 Mar 2017, 20:33

    I am encountering this exact situation as well. Spent many hours on it, still not solved

    In my environment sysroot + pkg-config are fully configured. Using Qt 5.8

    If I poke into the pkgconfig folder fontconfig does report it's there.

    /usr/lib/arm-linux-gnueabihf/libfontconfig.so in sysroot is present

    J Online
    J Online
    jsulm
    Lifetime Qt Champion
    wrote on 8 Mar 2017, 06:11 last edited by
    #18

    @Malachi Are fontconfig header files present in the sysroot?
    Pass -v parameter to configure and check what it says about fontconfig.

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

    M 1 Reply Last reply 10 Mar 2017, 03:19
    0
    • J jsulm
      8 Mar 2017, 06:11

      @Malachi Are fontconfig header files present in the sysroot?
      Pass -v parameter to configure and check what it says about fontconfig.

      M Offline
      M Offline
      Malachi
      wrote on 10 Mar 2017, 03:19 last edited by
      #19

      @jsulm I will check this

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Malachi
        wrote on 10 Mar 2017, 19:09 last edited by
        #20

        The fontconfig header files are present in /usr/include/fontconfig

        I pass in -v, however when I review config.log the only mention of fontconfig is where I explicit specify it on the command line

        1 Reply Last reply
        0
        • S Offline
          S Offline
          SGaist
          Lifetime Qt Champion
          wrote on 10 Mar 2017, 22:14 last edited by
          #21

          The files must be in the sysroot for your target, not from your desktop 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
          • M Offline
            M Offline
            Malachi
            wrote on 10 Mar 2017, 23:42 last edited by
            #22

            Yes, we're on the same page. I omitted the full path for brevity, actual path is:

            host: ~/Projects/rpi/zero/sysroot/usr/include/fontconfig
            target: /usr/include/fontconfig

            with flag "-sysroot ~/Projects/rpi/zero/sysroot" passed into ./configure

            1 Reply Last reply
            0
            • S Offline
              S Offline
              SGaist
              Lifetime Qt Champion
              wrote on 10 Mar 2017, 23:58 last edited by
              #23

              In that case, you can pass the -v option to configure and check what happens with fontconfig there.

              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
              • M Offline
                M Offline
                Malachi
                wrote on 13 Mar 2017, 06:31 last edited by Malachi
                #24

                I'm already passing in -v to ./configure. Is there somewhere else I should be passing it in?

                I have been fiddling around, and trying to use system-freetype as the prereq for fontconfig (I hope I am understanding that properly). I did notice something in the config.log about that:

                /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/bin/armv6-rpi-linux-gnueabihf-g++ -Wl,-rpath-link,/home/malachi/Projects/rpi/zero/sysroot/opt/vc/lib -Wl,-rpath-link,/home/malachi/Projects/rpi/zero/sysroot/usr/lib/armv6-rpi-linux-gnueabihf -Wl,-rpath-link,/home/malachi/Projects/rpi/zero/sysroot/lib/armv6-rpi-linux-gnueabihf -mfloat-abi=hard -Wl,-O1 -fuse-ld=gold -o freetype freetype.o   -L/home/malachi/Projects/rpi/zero/sysroot/usr/lib/arm-linux-gnueabihf -lfreetype 
                > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot open /lib/arm-linux-gnueabihf/libc.so.6: No such file or directory
                > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot open /usr/lib/arm-linux-gnueabihf/libc_nonshared.a: No such file or directory
                > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot open /lib/arm-linux-gnueabihf/ld-linux-armhf.so.3: No such file or directory
                > ../sysdeps/arm/start.S:124: error: undefined reference to '__libc_start_main'
                > ../sysdeps/arm/start.S:128: error: undefined reference to 'abort'
                > ../sysdeps/arm/start.S:113: error: undefined reference to '__libc_csu_fini'
                > ../sysdeps/arm/start.S:120: error: undefined reference to '__libc_csu_init'
                > collect2: error: ld returned 1 exit status
                > Makefile:64: recipe for target 'freetype' failed
                > make: *** [freetype] Error 1
                 => source failed verification.
                
                

                I seems the linker is looking for the raw target paths to find some libs, but of course on the cross-compiling host those paths aren't present. I had to specify "-no-gcc-sysroot" to get things to compile in general, is it possible that flag is causing a problem here?

                I'm definitely specifying the -sysroot parameter...so this one surprised me

                It's worth noting I'm using a crosstool-ng toolchain, targeting GCC 4.9 LINARO

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on 13 Mar 2017, 08:07 last edited by
                  #25

                  Do you mean that you are using a self-built toolchain ?

                  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
                  • M Offline
                    M Offline
                    Malachi
                    wrote on 13 Mar 2017, 08:44 last edited by Malachi
                    #26

                    @SGaist yes

                    ct-ng has an rpi preset, so I'm more or less using that

                    EDIT: If "no-gcc-sysroot" is not specified, we see:

                    /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/bin/armv6-rpi-linux-gnueabihf-g++ -Wl,-rpath-link,/home/malachi/Projects/rpi/zero/sysroot/opt/vc/lib -Wl,-rpath-link,/home/malachi/Projects/rpi/zero/sysroot/usr/lib/armv6-rpi-linux-gnueabihf -Wl,-rpath-link,/home/malachi/Projects/rpi/zero/sysroot/lib/armv6-rpi-linux-gnueabihf -mfloat-abi=hard --sysroot=/home/malachi/Projects/rpi/zero/sysroot -Wl,-O1 -fuse-ld=gold -o verifyspec verifyspec.o    
                    > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot open crt1.o: No such file or directory
                    > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot open crti.o: No such file or directory
                    > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot open crtn.o: No such file or directory
                    > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot find -lstdc++
                    > /home/malachi/x-tools/armv6-rpi-linux-gnueabihf/lib/gcc/armv6-rpi-linux-gnueabihf/4.9.4/../../../../armv6-rpi-linux-gnueabihf/bin/ld.gold: error: cannot find -lm
                    ...
                    

                    The lines like:

                    -rpath-link,/home/malachi/Projects/rpi/zero/sysroot/lib/armv6-rpi-linux-gnueabihf

                    are wrong. Should be

                    -rpath-link,/home/malachi/Projects/rpi/zero/sysroot/lib/arm-linux-gnueabihf

                    Is there an additional config option for me to specify this?

                    Strangely, even if I symlink an armv6-rpi-linux-gnueabihf folder into existence it still fails...

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 13 Mar 2017, 21:42 last edited by
                      #27

                      Why not use the Raspberry Pi provided toolchain ?

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

                      M 1 Reply Last reply 13 Mar 2017, 22:54
                      0
                      • S SGaist
                        13 Mar 2017, 21:42

                        Why not use the Raspberry Pi provided toolchain ?

                        M Offline
                        M Offline
                        Malachi
                        wrote on 13 Mar 2017, 22:54 last edited by Malachi
                        #28

                        @SGaist Reason is, I don't know if it (the provided toolchain) will fully work within buildroot environment, which is where I want to end up eventually. That and for other projects, ct-ng has been working quite nicely.

                        That said, it is feeling like time to at least give the provided toolchain a shot

                        EDIT: So, using the provided toolchain (gcc-linaro-arm-linux-gnueabihf-raspbian-x64) faces issues compiling qtwebkit and qtwebengine modules (demands NEON code). Are these modules supported on ARMv6?

                        1 Reply Last reply
                        0
                        • C Offline
                          C Offline
                          CharlesV
                          wrote on 22 Mar 2017, 01:57 last edited by CharlesV
                          #29

                          Had the same issue cross-compiling Qt 5.8 for the Pi 2. Turns out it was caused by having absolute links in libraries in the sysroot. I fixed the problem using the symlinks program. Use the following commands on the Pi to fix it before running configure on the host (much cleaner than the fixQualifiedLibraryPaths shell script suggested on several Pi sites):

                          mkdir ~/tmp
                          cd ~/tmp
                          git clone https://github.com/brandt/symlinks
                          cd symlinks
                          make

                          Edit Makefile (e.g. vi Makefile) and add the following variable definition:

                          INSTALL = /usr/bin/install

                          Save and then run these commands:

                          sudo mkdir /usr/man/man8
                          sudo make install
                          sudo symlinks -cr /usr/lib /lib

                          M 1 Reply Last reply 28 Mar 2017, 08:50
                          1
                          • C CharlesV
                            22 Mar 2017, 01:57

                            Had the same issue cross-compiling Qt 5.8 for the Pi 2. Turns out it was caused by having absolute links in libraries in the sysroot. I fixed the problem using the symlinks program. Use the following commands on the Pi to fix it before running configure on the host (much cleaner than the fixQualifiedLibraryPaths shell script suggested on several Pi sites):

                            mkdir ~/tmp
                            cd ~/tmp
                            git clone https://github.com/brandt/symlinks
                            cd symlinks
                            make

                            Edit Makefile (e.g. vi Makefile) and add the following variable definition:

                            INSTALL = /usr/bin/install

                            Save and then run these commands:

                            sudo mkdir /usr/man/man8
                            sudo make install
                            sudo symlinks -cr /usr/lib /lib

                            M Offline
                            M Offline
                            Malachi
                            wrote on 28 Mar 2017, 08:50 last edited by
                            #30

                            @CharlesV I'll give this a try. Pretty sure I symlinked properly, but your cleaner script could do the trick. I'm really worried that rpi0 just doesn't support JIT....

                            1 Reply Last reply
                            0
                            • P Offline
                              P Offline
                              paul_espinosa
                              wrote on 15 Jul 2017, 00:44 last edited by
                              #31

                              something can resolve the problem ?????

                              1 Reply Last reply
                              0
                              • P Offline
                                P Offline
                                paul_espinosa
                                wrote on 15 Jul 2017, 01:11 last edited by
                                #32

                                Fonts copied FROM /usr/share/fonts/truetype/dejavu/ TO target device: /usr/local/Qt5pi/lib/fonts

                                • The Fonts folder had to be created manually.

                                And it worked !!!!

                                A 1 Reply Last reply 17 Dec 2019, 10:48
                                0
                                • P paul_espinosa
                                  15 Jul 2017, 01:11

                                  Fonts copied FROM /usr/share/fonts/truetype/dejavu/ TO target device: /usr/local/Qt5pi/lib/fonts

                                  • The Fonts folder had to be created manually.

                                  And it worked !!!!

                                  A Offline
                                  A Offline
                                  Amr.Sha
                                  wrote on 17 Dec 2019, 10:48 last edited by
                                  #33

                                  @paul_espinosa thanks ,, worked for me also installing Qt-5.7.1 on armhf

                                  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