compile QT 5.8 raspberry OK, work but i can't deploy qt project



  • hello, i have compiling qt for my raspberry pi with EGLFS wiki 5.6

    i can execute example opengl in my target==> nice.

    but i have created kit qt 5.8 for deploy my application
    (tool chain the same that i have compiled qt)
    /home/thibaud/Bureau/rpi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-g++

    but when i compile,i have error in toolchain in rootfs:

    /mnt/root/usr/lib/arm-linux-gnueabihf/libicui18n.so.52 : référence indéfinie vers « __cxa_throw_bad_array_new_length@CXXABI_1.3.8 »
    

    please help me please...



  • @kickoune103 It looks like either libicu is built wrong (wrong compiler maybe?) or it was linked against a different version of libc/libgcc perhaps. This would break the ABI which is what it seems like that error is saying.

    Or you are mixing an old version of libicu with a newer one. This could break libicu's ABI.



  • i try to compile qt, with the same version of gcc 4.9

    i would try linaro 4.9.4 2017 01 for compile qt

    error in make
    linero arm linux 4.9.4 official 2017 01
    error in compile qt!!
    L/home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtbase/lib -lQt5Core -lpthread
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::newConnection()@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::QTcpServer(QObject*)@Qt_5 »
    /home/thibaud/Bureau/rpi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5Network.so.5 : référence indéfinie vers « qt_safe_select(int, fd_set*, fd_set*, fd_set*, timespec const*) »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::acceptError(QAbstractSocket::SocketError)@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::close()@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QHostAddress::~QHostAddress()@Qt_5 »
    /home/thibaud/Bureau/rpi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5Network.so.5 : référence indéfinie vers « qIsEffectiveTLD(QString const&) »
    /home/thibaud/Bureau/rpi/sysroot/usr/lib/arm-linux-gnueabihf/libQt5Network.so.5 : référence indéfinie vers « QNonContiguousByteDevice::disableReset() »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::connected()@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::peerName() const@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::state() const@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::staticMetaObject@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::error(QAbstractSocket::SocketError)@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::isListening() const@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::peerAddress() const@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::disconnected()@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::errorString() const@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpSocket::QTcpSocket(QObject*)@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QHostAddress::QHostAddress(QString const&)@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QAbstractSocket::peerPort() const@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::staticMetaObject@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « QTcpServer::listen(QHostAddress const&, unsigned short)@Qt_5 »
    /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/lib/libQt5SerialBus.so : référence indéfinie vers « operator<<(QDebug, QHostAddress const&)@Qt_5 »
    collect2: error: ld returned 1 exit status
    Makefile:90 : la recette pour la cible « ../../../bin/canbusutil » a échouée
    make[4]: *** [../../../bin/canbusutil] Erreur 1
    make[4] : on quitte le répertoire « /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/src/tools/canbusutil »
    Makefile:42 : la recette pour la cible « sub-canbusutil-make_first » a échouée
    make[3]: *** [sub-canbusutil-make_first] Erreur 2
    make[3] : on quitte le répertoire « /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/src/tools »
    Makefile:95 : la recette pour la cible « sub-tools-make_first » a échouée
    make[2]: *** [sub-tools-make_first] Erreur 2
    make[2] : on quitte le répertoire « /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus/src »
    Makefile:44 : la recette pour la cible « sub-src-make_first » a échouée
    make[1]: *** [sub-src-make_first] Erreur 2
    make[1] : on quitte le répertoire « /home/thibaud/Bureau/rpi/qt-everywhere-opensource-src-5.8.0/qtserialbus »
    Makefile:229 : la recette pour la cible « module-qtserialbus-make_first » a échouée
    make: *** [module-qtserialbus-make_first] Erreur 2

    have you a simply method for work qt 5.8 in raspberry pi.



  • @kickoune103 Those errors look like you are mixing 2 different Qt versions. You have a system Qt version that is interfering with your custom built one.

    There have been tons of posts on these forums with people having that same issue (specifically with a Pi). I have been involved in most of those posts and most were solved.

    Do a quick search or maybe even look through my post history and you should find them and their solutions. But basically it's exactly what I said above. You have to either isolate your build from your system level Qt or uninstall it. Then make sure you run a completely clean build (from a clean tar/gz extract) and you should be good.



  • i search since lot of months, i have post few messages in multiple forum........
    all the time the make clean not work for me when i change ./configure

    i prefer delete folder and reextract qt source.
    you must execute make clean after.?



  • i will try
    sudo apt-get uninstall libqt5*

    i don't understand all the time i will run this for build qt.
    i have qt creator for create my application.

    i must install this after...

    before i use other toolchain github/raspbi/tools.



  • no problems.



  • i'm sure that the qt folder is clean....


  • Moderators

    @kickoune103 There is an easy way to always have clean Qt sources: do out of source builds.
    Explanation:

    mkdir ~/qt_build
    cd ~/qt_build
    PATH_TO_QT_SOURCES/configure...
    make
    make install
    

    If you do it this way your Qt sources will be untouched.
    Did you modify any environment variables like PATH and LD_LIBRARY_PATH?



  • no when i retry a new build.

    i will delete folder, and re extract source, browse in and "make".



  • @kickoune103 said in compile QT 5.8 raspberry OK, work but i can't deploy qt project:

    i will try
    sudo apt-get uninstall libqt5*

    i don't understand all the time i will run this for build qt.
    i have qt creator for create my application.

    i must install this after...

    before i use other toolchain github/raspbi/tools.

    can you explain but solution in topic is delete remove libQT5.
    qt5 is installed in my machine for deploy application so the solution is bad.



  • @kickoune103

    https://forum.qt.io/topic/75682/has-anyone-successfully-built-qt-from-source-recently-on-a-pi/20

    Check my second to last post in this topic. It has all the info you need to make sure your command uses the copy of Qt that you want and does not mix it with your system Qt.

    I've answered this at least 10 times in the last few months, so sorry for the link instead of just typing it all out again. It gets old. :)



  • Remove your existing icu libs in raspberry PI. Download icu libs source and compile it from your PI.


Log in to reply