RaspberryPi2EGLFS cross compile - libQt5Core.so.5.6.0 Error 1



  • Hi,
    I am trying to compile QT by cross-compile by follow this tutorial.
    https://wiki.qt.io/RaspberryPi2EGLFS

    successful run configure by running this command.

    ./configure -release -opengl es2 -device linux-rasp-pi2-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -no-xcb -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -v
    

    a problem occurs when i run make command, provide the full stack from the first error.

    /home/daywong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/daywong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libz.so: No such file or directory
    /home/daywong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/daywong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libglib-2.0.so: No such file or directory
    /home/daywong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/daywong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/librt.so: No such file or directory
    /home/daywong/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld.gold: error: cannot open /home/daywong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libm.so: No such file or directory
    .obj/qbytearray.o:qbytearray.cpp:function qUncompress(unsigned char const*, int): error: undefined reference to 'uncompress'
    .obj/qbytearray.o:qbytearray.cpp:function qCompress(unsigned char const*, int, int): error: undefined reference to 'compress2'
    .obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'pow'
    .obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'floorf'
    .obj/qdatetime.o:qdatetime.cpp:function fromIsoTimeString(QStringRef const&, Qt::DateFormat, bool*): error: undefined reference to 'pow'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeCosineCurve(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutSine(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeSineCurve(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutSine(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutCurve(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInCirc(double): error: undefined reference to 'sqrt'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutInSine(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeOutInSine(double): error: undefined reference to 'sin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutExpo(double): error: undefined reference to 'pow'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInOutExpo(double): error: undefined reference to 'pow'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function easeInSine(double): error: undefined reference to 'cos'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qeasingcurve.o:qeasingcurve.cpp:function ElasticEase::value(double): error: undefined reference to 'asin'
    .obj/qline.o:qline.cpp:function QLineF::angle() const: error: undefined reference to 'atan2'
    .obj/qline.o:qline.cpp:function QLineF::setAngle(double): error: undefined reference to 'sincos'
    .obj/qline.o:qline.cpp:function QLineF::fromPolar(double, double): error: undefined reference to 'sincos'
    .obj/qline.o:qline.cpp:function QLineF::angle(QLineF const&) const: error: undefined reference to 'acos'
    .obj/qlocale_tools.o:qlocale_tools.cpp:function qdtoa(double, int, int, int*, int*, char**, char**): error: undefined reference to 'feholdexcept'
    .obj/qlocale_tools.o:qlocale_tools.cpp:function qdtoa(double, int, int, int*, int*, char**, char**): error: undefined reference to 'fesetenv'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'floor'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'ceil'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'floor'
    .obj/qrect.o:qrect.cpp:function QRectF::toAlignedRect() const: error: undefined reference to 'ceil'
    .obj/qtimeline.o:qtimeline.cpp:function QTimeLine::frameForTime(int) const: error: undefined reference to 'ceil'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>): error: undefined reference to 'g_main_context_iteration'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>): error: undefined reference to 'g_main_context_iteration'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::hasPendingEvents(): error: undefined reference to 'g_main_context_pending'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::wakeUp(): error: undefined reference to 'g_main_context_wakeup'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*): error: undefined reference to 'g_source_remove_poll'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::unregisterSocketNotifier(QSocketNotifier*): error: undefined reference to 'g_source_remove_poll'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_destroy'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_unref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_destroy'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_unref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_remove_poll'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_destroy'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_unref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_destroy'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_source_unref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_main_context_pop_thread_default'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::~QEventDispatcherGlib(): error: undefined reference to 'g_main_context_unref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_main_context_ref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_main_context_push_thread_default'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_new'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_set_can_recurse'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_attach'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_new'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_set_can_recurse'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_attach'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_new'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_set_can_recurse'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_attach'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_new'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_set_can_recurse'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_set_priority'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_source_attach'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_main_context_new'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_main_context_default'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate(_GMainContext*): error: undefined reference to 'g_main_context_ref'
    .obj/qeventdispatcher_glib.o:qeventdispatcher_glib.cpp:function QEventDispatcherGlib::registerSocketNotifier(QSocketNotifier*): error: undefined reference to 'g_source_add_poll'
    collect2: error: ld returned 1 exit status
    make[2]: *** [../../lib/libQt5Core.so.5.6.0] Error 1
    make[2]: Leaving directory `/home/daywong/raspi/qtbase/src/corelib'
    make[1]: *** [sub-corelib-make_first] Error 2
    make[1]: Leaving directory `/home/daywong/raspi/qtbase/src'
    make: *** [sub-src-make_first] Error 2
    
    

    verified arm-linux-gnueabihf/libz.so is exist

    $ls ~/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libz.so -alh
    lrwxrwxrwx 1 daywong daywong 38 Jan 17 20:54 /home/daywong/raspi/sysroot/usr/lib/arm-linux-gnueabihf/libz.so -> /lib/arm-linux-gnueabihf/libz.so.1.2.8
    
    

  • Lifetime Qt Champion

    Hi,

    That file is a symbolic link. Do you really have libz in /lib/arm-linux-gnueabihf/ ?



  • @SGaist
    Hi SGaist,
    You are right. libz.so.1.2.8 was not exist by the symbolic link. Just created another symbolic link to /lib/x86_64-linux-gnu , where libz.so.1.2.8 is located. Thanks for your help.


  • Lifetime Qt Champion

    That's the wrong thing to do, now you are trying to link to a library of the wrong architecture. You can't mix ARM and x86_64 libraries.

    IIRC, there's a script to cleanup the links of the sysroot so that they can be used properly by the linker.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.