Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Special Interest Groups
  3. QtonPi
  4. Compile problem for Raspberry Pi again

Compile problem for Raspberry Pi again

Scheduled Pinned Locked Moved QtonPi
qt5.4raspberry pi
10 Posts 7 Posters 12.1k 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.
  • V Offline
    V Offline
    vaidi
    wrote on last edited by A Former User
    #1

    Hey guys,

    first of all, thanks for all the work you spent on this project. I'm really looking forward to develop my first Qt applications for the pi.
    First of all, I am using ubuntu 14.10 64Bit.

    I tried to follow http://www.ics.com/blog/building-qt-5-raspberry-pi but I have problems compiling qtbase.

    I used several configurations found on the internet, but I get always the same error when compiling.

    my configuration options:
    ./configure
    -release
    -opengl es2
    -optimized-qmake
    -no-pch
    -make libs
    -make tools
    -sysroot /mnt/raspberry-rootfs
    -device linux-rasp-pi-g++
    -device-option CROSS_COMPILE=~/raspberry/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-
    -prefix /usr/local/Qt-5.4.0-raspberry

    ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspberry/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/raspberry-rootfs -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/Qt-5.4.0-raspberry

    ./configure -release -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/raspberry/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/raspberry-rootfs -prefix /usr/local/Qt-5.4.0-raspberry

    error:
    .obj/qlibrary_unix.o: In function QLibraryPrivate::load_sys()': qlibrary_unix.cpp:(.text+0x12e0): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/libdl.a(dlopen.o): In function dlopen':
    (.text+0xc): undefined reference to __dlopen' /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/libdl.a(dlclose.o): In function dlclose':
    (.text+0x0): undefined reference to __dlclose' /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/libdl.a(dlsym.o): In function dlsym':
    (.text+0xc): undefined reference to __dlsym' /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/libdl.a(dlerror.o): In function dlerror':
    (.text+0x0): undefined reference to __dlerror' /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/libm.a(feholdexcpt.o): In function feholdexcept':
    (.text+0x48): undefined reference to _dl_hwcap' /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/libm.a(fesetenv.o): In function fesetenv':
    (.text+0x64): undefined reference to `_dl_hwcap'
    collect2: error: ld returned 1 exit status
    Makefile:1293: recipe for target '../../lib/libQt5Core.so.5.4.0' failed
    make[2]: *** [../../lib/libQt5Core.so.5.4.0] Error 1
    make[2]: Leaving directory '/home/david/raspberry/qt-everywhere-opensource-src-5.4.0/qtbase/src/corelib'
    Makefile:138: recipe for target 'sub-corelib-make_first' failed
    make[1]: *** [sub-corelib-make_first] Error 2
    make[1]: Leaving directory '/home/david/raspberry/qt-everywhere-opensource-src-5.4.0/qtbase/src'
    Makefile:45: recipe for target 'sub-src-make_first' failed
    make: *** [sub-src-make_first] Error 2

    In another thread somebody posted (maybe) the same problem. But the advice was to build without -reduce-exports, which I did.

    Thanks for your atention!

    1 Reply Last reply
    0
    • sneubertS Offline
      sneubertS Offline
      sneubert
      wrote on last edited by
      #2

      Use https://gitorious.org/cross-compile-tools/cross-compile-tools/blobs/master/fixQualifiedLibraryPaths
      to fix broken symlinks in your Image.

      The script should output all adjusted symlinks on success.

      A 2 Replies Last reply
      0
      • sneubertS sneubert

        Use https://gitorious.org/cross-compile-tools/cross-compile-tools/blobs/master/fixQualifiedLibraryPaths
        to fix broken symlinks in your Image.

        The script should output all adjusted symlinks on success.

        A Offline
        A Offline
        AQTStudent
        wrote on last edited by
        #3

        @sneubert
        I also have the same problem unfortunately
        I tried this but I don't get how this should work..

        My error is

        • tueco@ubuntu:~/opt/qt5/qtbase$ sudo ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -release -make libs -prefix /usr/local/qt5pi
          This is the Qt Open Source Edition.
          You are licensed to use this software under the terms of
          the Lesser GNU General Public License (LGPL) versions 2.1.
          You are also licensed to use this software under the terms of
          the GNU Lesser General Public License (LGPL) versions 3.
          You have already accepted the terms of the Open Source license.
          /home/tueco/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
          /home/tueco/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-g++: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
          <srcbase> = /home/tueco/opt/qt5/qtbase
          <outbase> = /home/tueco/opt/qt5/qtbase
          Creating qmake...
          .Done.
          Running configuration tests...
          Note: PKG_CONFIG_LIBDIR automatically set to /mnt/rasp-pi-rootfs/usr/lib/pkgconfig:/mnt/rasp-pi-rootfs/usr/share/pkgconfig
          Note: PKG_CONFIG_SYSROOT_DIR automatically set to /mnt/rasp-pi-rootfs
          Could not determine the target architecture!
          Turn on verbose messaging (-v) to see the final report.
          The OpenGL ES 2.0 functionality test failed!
          You might need to modify the include and library search paths by editing
          QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
          /home/tueco/opt/qt5/qtbase/mkspecs/devices/linux-rasp-pi-g++.

        I don't really get what I am supposed to do..

        1 Reply Last reply
        0
        • sneubertS Offline
          sneubertS Offline
          sneubert
          wrote on last edited by
          #4

          @jorricks
          This does not seem to be the same issue.
          Your output states, that the cross-compiler can not be started, because of missing libstdc++. This is not a linker problem.
          Is the libstdc++6 package installed on your development host?

          1 Reply Last reply
          0
          • A Offline
            A Offline
            AQTStudent
            wrote on last edited by AQTStudent
            #5

            @sneubert
            ah nvm.. I found that it had to do with the configure not being able to find the right device

            N 1 Reply Last reply
            0
            • sneubertS sneubert

              Use https://gitorious.org/cross-compile-tools/cross-compile-tools/blobs/master/fixQualifiedLibraryPaths
              to fix broken symlinks in your Image.

              The script should output all adjusted symlinks on success.

              A Offline
              A Offline
              AQTStudent
              wrote on last edited by
              #6
              This post is deleted!
              1 Reply Last reply
              0
              • A AQTStudent

                @sneubert
                ah nvm.. I found that it had to do with the configure not being able to find the right device

                N Offline
                N Offline
                newpi
                wrote on last edited by
                #7

                @AQTStudent Hi there,

                I seems to be experiencing the same issue, Could you kndly share what the solution was for this?

                Thanks in advance!

                1 Reply Last reply
                0
                • L Offline
                  L Offline
                  Lutfi88
                  wrote on last edited by Lutfi88
                  #8

                  hi all,

                  i have the same issues, and i fixed it.
                  but i dont really know, what i do is fixed the issue.

                  • fixQualifiedLibraryPaths in this site https://github.com/shahriman/cross-compile-tools.git, not working properly on my debian host.. so i edit the script,

                  the problem is we cant Using 'dlopen, dlclose, etc' in statically,

                  if we go to diirectory /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/

                  and run

                  sudo file * | grep broken

                  there is many dynamic library broken symlink, so the toolcain automatic using static library. thats why, it show warning dlopen..

                  note : if we finished cros compile and install, u need to get back symlink.

                  #!/bin/bash
                  #This script is ugly, feel free to fix it

                  if [ "$#" -ne 2 ]; then
                  echo "usage ./cmd target-rootfs path-to-target-toolchain-compiler"
                  exit -1
                  fi

                  #passed args
                  ROOTFS=$1
                  TOOLCHAIN=$2

                  if [ -x $TOOLCHAIN ]; then
                  echo "Passed valid tool"
                  MACHINE=$($TOOLCHAIN -dumpmachine)
                  DEB_MULTI_ARCH_MADNESS=$ROOTFS/usr/lib/$MACHINE

                  fi

                  INITIAL_DIR=$PWD

                  function adjustSymLinks1
                  {
                  echo "Adjusting the symlinks in $1 to be relative"

                  cd $1
                  

                  echo $PWD
                  find . -maxdepth 1 -type l | while read i;
                  do qualifies=$(file $i | grep broken)
                  if [ -n "$qualifies" ]; then
                  newPath=$(file $i | grep broken | grep /etc| sed 's/^.*to //');
                  echo $i
                  echo /mnt/rasp-pi-rootfs$newPath;
                  sudo rm $i;
                  sudo ln -s /mnt/rasp-pi-rootfs$newPath $i;
                  fi
                  done
                  cd $INITIAL_DIR
                  }

                  echo "Testing for existence of potential debian multi-arch dir: $DEB_MULTI_ARCH_MADNESS"

                  function adjustSymLinks2
                  {
                  echo "Adjusting the symlinks in $1 to be relative"

                  cd $1
                  

                  echo $PWD
                  find . -maxdepth 1 -type l | while read i;
                  do qualifies=$(file $i | grep broken | grep /lib/arm)
                  if [ -n "$qualifies" ]; then
                  newPath=$(file $i | grep broken | grep /lib/arm | sed 's/^.*to //');
                  echo $i
                  echo /mnt/rasp-pi-rootfs$newPath;
                  sudo rm $i;
                  sudo ln -s /mnt/rasp-pi-rootfs$newPath $i;
                  fi
                  done
                  cd $INITIAL_DIR
                  }

                  if [ -n "$DEB_MULTI_ARCH_MADNESS" -a -e "$DEB_MULTI_ARCH_MADNESS" ]; then
                  echo "Debian multiarch dir exists, adjusting"
                  adjustSymLinks2 $DEB_MULTI_ARCH_MADNESS "../../.."
                  fi

                  J 1 Reply Last reply
                  1
                  • L Lutfi88

                    hi all,

                    i have the same issues, and i fixed it.
                    but i dont really know, what i do is fixed the issue.

                    • fixQualifiedLibraryPaths in this site https://github.com/shahriman/cross-compile-tools.git, not working properly on my debian host.. so i edit the script,

                    the problem is we cant Using 'dlopen, dlclose, etc' in statically,

                    if we go to diirectory /mnt/raspberry-rootfs/usr/lib/arm-linux-gnueabihf/

                    and run

                    sudo file * | grep broken

                    there is many dynamic library broken symlink, so the toolcain automatic using static library. thats why, it show warning dlopen..

                    note : if we finished cros compile and install, u need to get back symlink.

                    #!/bin/bash
                    #This script is ugly, feel free to fix it

                    if [ "$#" -ne 2 ]; then
                    echo "usage ./cmd target-rootfs path-to-target-toolchain-compiler"
                    exit -1
                    fi

                    #passed args
                    ROOTFS=$1
                    TOOLCHAIN=$2

                    if [ -x $TOOLCHAIN ]; then
                    echo "Passed valid tool"
                    MACHINE=$($TOOLCHAIN -dumpmachine)
                    DEB_MULTI_ARCH_MADNESS=$ROOTFS/usr/lib/$MACHINE

                    fi

                    INITIAL_DIR=$PWD

                    function adjustSymLinks1
                    {
                    echo "Adjusting the symlinks in $1 to be relative"

                    cd $1
                    

                    echo $PWD
                    find . -maxdepth 1 -type l | while read i;
                    do qualifies=$(file $i | grep broken)
                    if [ -n "$qualifies" ]; then
                    newPath=$(file $i | grep broken | grep /etc| sed 's/^.*to //');
                    echo $i
                    echo /mnt/rasp-pi-rootfs$newPath;
                    sudo rm $i;
                    sudo ln -s /mnt/rasp-pi-rootfs$newPath $i;
                    fi
                    done
                    cd $INITIAL_DIR
                    }

                    echo "Testing for existence of potential debian multi-arch dir: $DEB_MULTI_ARCH_MADNESS"

                    function adjustSymLinks2
                    {
                    echo "Adjusting the symlinks in $1 to be relative"

                    cd $1
                    

                    echo $PWD
                    find . -maxdepth 1 -type l | while read i;
                    do qualifies=$(file $i | grep broken | grep /lib/arm)
                    if [ -n "$qualifies" ]; then
                    newPath=$(file $i | grep broken | grep /lib/arm | sed 's/^.*to //');
                    echo $i
                    echo /mnt/rasp-pi-rootfs$newPath;
                    sudo rm $i;
                    sudo ln -s /mnt/rasp-pi-rootfs$newPath $i;
                    fi
                    done
                    cd $INITIAL_DIR
                    }

                    if [ -n "$DEB_MULTI_ARCH_MADNESS" -a -e "$DEB_MULTI_ARCH_MADNESS" ]; then
                    echo "Debian multiarch dir exists, adjusting"
                    adjustSymLinks2 $DEB_MULTI_ARCH_MADNESS "../../.."
                    fi

                    J Offline
                    J Offline
                    jinseiseito
                    wrote on last edited by
                    #9

                    @Lutfi88 Thank you for the solution, this solved my problem with "undefined reference to __dlsym"

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      stryga42
                      wrote on last edited by
                      #10

                      There is a very handy package which eases the symlink problem a lot:

                      sudo apt-get symlinks
                      

                      then

                      sudo symlinks -cr /lib
                      sudo symlinks -cr /usr/lib
                      sudo symlinks -cr /usr/local/lib
                      

                      will fix your problems.

                      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