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.
  • A Angel Popov
    24 Jan 2017, 07:59

    @agocs Thank you for you answer. I will check this out as soos as I can.

    About fontconfig support, the following is the summary of the build with -fonconfing included:

    Build options:
    Mode ................................... release; optimized tools
    Building shared libraries .............. yes
    Using C++ standard ..................... C++14
    Using gold linker ...................... yes
    Using new DTAGS ........................ yes
    Using precompiled headers .............. yes
    Using LTCG ............................. no
    Target compiler supports:
    NEON ................................. no
    Build parts ............................ libs
    Qt modules and options:
    Qt Concurrent .......................... yes
    Qt D-Bus ............................... yes
    Qt D-Bus directly linked to libdbus .... no
    Qt Gui ................................. yes
    Qt Network ............................. yes
    Qt Sql ................................. yes
    Qt Testlib ............................. yes
    Qt Widgets ............................. yes
    Qt Xml ................................. yes
    Support enabled for:
    Accessibility .......................... yes
    Using pkg-config ....................... no
    QML debugging .......................... yes
    udev ................................... yes
    Using system zlib ...................... yes
    Qt Core:
    DoubleConversion ....................... yes
    Using system DoubleConversion ........ no
    GLib ................................... no
    iconv .................................. no
    ICU .................................... yes
    Logging backends:
    journald ............................. no
    syslog ............................... no
    slog2 ................................ no
    Using system PCRE ...................... no
    Qt Network:
    getaddrinfo() .......................... yes
    getifaddrs() ........................... yes
    IPv6 ifname ............................ yes
    libproxy ............................... no
    OpenSSL ................................ yes
    Qt directly linked to OpenSSL ........ no
    SCTP ................................... no
    Use system proxies ..................... yes
    Qt Sql:
    DB2 (IBM) .............................. no
    InterBase .............................. no
    MySql .................................. yes
    OCI (Oracle) ........................... no
    ODBC ................................... yes
    PostgreSQL ............................. yes
    SQLite2 ................................ yes
    SQLite ................................. yes
    Using system provided SQLite ......... no
    TDS (Sybase) ........................... yes
    Qt Gui:
    FreeType ............................... yes
    Using system FreeType ................ no
    HarfBuzz ............................... yes
    Using system HarfBuzz ................ no
    Fontconfig ............................. no
    Image formats:
    GIF .................................. yes
    ICO .................................. yes
    JPEG ................................. yes
    Using system libjpeg ............... yes
    PNG .................................. yes
    Using system libpng ................ no
    OpenGL:
    EGL .................................. yes
    Desktop OpenGL ....................... no
    OpenGL ES 2.0 ........................ yes
    OpenGL ES 3.0 ........................ no
    OpenGL ES 3.1 ........................ no
    Session Management ..................... yes
    Features used by QPA backends:
    evdev .................................. yes
    libinput ............................... no
    mtdev .................................. no
    tslib .................................. yes
    xkbcommon-evdev ........................ no
    QPA backends:
    DirectFB ............................... no
    EGLFS .................................. yes
    EGLFS details:
    EGLFS i.Mx6 .......................... no
    EGLFS i.Mx6 Wayland .................. no
    EGLFS EGLDevice ...................... no
    EGLFS GBM ............................ no
    EGLFS Mali ........................... no
    EGLFS Raspberry Pi ................... yes
    EGL on X11 ........................... no
    LinuxFB ................................ yes
    Mir client ............................. no
    X11:
    Using system provided XCB libraries .. yes
    EGL on X11 ........................... no
    Xinput2 .............................. yes
    XCB XKB .............................. yes
    XLib ................................. yes
    Xrender .............................. yes
    XCB render ........................... yes
    XCB GLX .............................. yes
    XCB Xlib ............................. yes
    Using system-provided xkbcommon ...... no
    Qt Widgets:
    GTK+ ................................... no
    Styles ................................. Fusion Windows
    Qt PrintSupport:
    CUPS ................................... yes
    Qt SerialBus:
    Socket CAN ............................. yes
    Socket CAN FD .......................... yes
    QtXmlPatterns:
    XML schema support ..................... yes
    Qt QML:
    QML interpreter ........................ yes
    QML network support .................... yes
    Qt Quick:
    Direct3D 12 ............................ no
    AnimatedImage item ..................... yes
    Canvas item ............................ yes
    Support for Quick Designer ............. yes
    Flipable item .......................... yes
    GridView item .......................... yes
    ListView item .......................... yes
    Path support ........................... yes
    PathView item .......................... yes
    Positioner items ....................... yes
    ShaderEffect item ...................... yes
    Sprite item ............................ yes
    Qt 3D:
    System Assimp .......................... no
    Qt Wayland Drivers:
    EGL .................................... yes
    Rasberry Pi ............................ yes
    XComposite EGL ......................... no
    XComposite GLX ......................... no
    DRM EGL ................................ no
    libhybris EGL .......................... no
    Qt Wayland Client ........................ yes
    Qt Wayland Compositor .................... yes
    Qt Bluetooth:
    BlueZ .................................. no
    BlueZ Low Energy ....................... no
    Linux Crypto API ....................... no
    Qt Multimedia:
    ALSA ................................... yes
    GStreamer 1.0 .......................... no
    GStreamer 0.10 ......................... no
    Video for Linux ........................ yes
    OpenAL ................................. no
    PulseAudio ............................. no
    Resource Policy (libresourceqt5) ....... no
    DirectShow ............................. no
    Qt Location:
    Gypsy GPS Daemon ....................... no
    WinRT Geolocation API .................. no
    Qt Sensors:
    sensorfw ............................... no
    Qt WebEngine:
    Proprietary Codecs ..................... no
    Spellchecker ........................... yes
    ALSA ................................... yes
    PulseAudio ............................. no

    Note: Also available for Linux: linux-clang linux-kcc linux-icc linux-cxx

    Note: -optimized-tools is not useful in -release mode.

    WARNING: Cross compiling without sysroot. Disabling pkg-config

    ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed.

    I'm not able to activate the feature it says : ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed.

    Thanks in advance

    J Offline
    J Offline
    jsulm
    Lifetime Qt Champion
    wrote on 24 Jan 2017, 08:36 last edited by
    #15

    @Angel-Popov Call configure with additional -v parameter, then you should see why fontconfig check fails (most probably missing libs/header).

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

    1 Reply Last reply
    0
    • A agocs
      23 Jan 2017, 21:48

      Note that /usr/local/qt5pi/lib/fonts is supposed to be flat, meaning the ttf files must be right in there, without any subdirectories. An alternative, if you do not want to copy anything, is to set QT_QPA_FONTDIR to something suitable, f.ex. /usr/share/fonts/truetype/dejavu (do export QT_QPA_FONTDIR=/usr/share/fonts/truetype/dejavu before running the application)

      This is of course just a workaround. Why Qt was configured without fontconfig support (this is visible in the summary that is printed after running configure, look for a line with something like "fontconfig ..... no"), is a different question. It usually happens when a system Freetype is not available. Did you follow step #3 at https://wiki.qt.io/RaspberryPi2EGLFS in order to get a rootfs that has the necessary headers/libs?

      A Offline
      A Offline
      Angel Popov
      wrote on 24 Jan 2017, 13:40 last edited by Angel Popov
      #16

      @agocs I solved on QT 5.8 by providing fonts in Qt/lib/fonts without any subdirectories. However, the graphics quality is not so good and animations run slow. It says, in the debug console as I run the app, that JIT is disabled and it is required for fluid animations. How can I improve the graphics, enable JIT and have better performance?

      Thanks

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Malachi
        wrote on 7 Mar 2017, 20:33 last edited by Malachi 3 Jul 2017, 20:34
        #17

        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 1 Reply Last reply 8 Mar 2017, 06:11
        0
        • 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 Offline
          J Offline
          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
              • SGaistS Offline
                SGaistS 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
                  • SGaistS Offline
                    SGaistS 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
                      • SGaistS Offline
                        SGaistS 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
                          • SGaistS Offline
                            SGaistS 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
                            • SGaistS 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