[SOLVED] cross compile arm qt4.7.4 with -debug



  • Hello,

    I have successfully been able to cross compile Qt 4.7.4, compile an application, deploy the libs and application to an arm board and get a running application.

    Now I would like to get setup for debugging when I need to. I'm trying to cross compile Qt with -debug option.

    I have a cross compiler built from Openembeded, mkspecs, and working configuration without -debug.

    The below is an example of a working configuration I can use Qt for shared libs.
    @
    ./configure -v -opensource -confirm-license -xplatform qws/linux-arm-gnueabi-g++
    -embedded arm -little-endian -host-big-endian
    -prefix /usr/local/qt4.7.4-arm -release -fast
    -no-exceptions -no-accessibility -no-qt3support -no-multimedia -no-audio-backend
    -no-phonon -no-phonon-backend -no-svg -no-webkit -no-script -no-cups -no-dbus
    -no-gtkstyle -no-xinerama -no-glib -nomake examples -nomake tools
    -nomake demos -nomake docs -nomake translations
    -no-gtkstyle -no-opengl
    @
    Now if i just add -debug to the above configure, configure will be successful, but make will fail with the below error.

    @
    make[1]: *** [.uic/debug-shared-emb-arm/ui_qpagesetupwidget.h] Segmentation fault
    make[1]: *** Deleting file .uic/debug-shared-emb-arm/ui_qpagesetupwidget.h' make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/src/gui'
    make: *** [sub-gui-make_default-ordered] Error 2
    @

    Any suggestions work be greatly appreciated.


  • Moderators

    What is the output before that? What is it doing when it segfaults on .uic/debug...?



  • Thanks for the response Tobias,
    Here a little more of the make output. Let me know if there is any more information I can collect.

    @

    ../../include/QtCore/../../src/corelib/tools/qstring.h:187:17: note: the mangling of 'va_list' has changed in GCC 4.4
    rm -f libQtTest.so.4.7.4 libQtTest.so libQtTest.so.4 libQtTest.so.4.7
    arm-angstrom-linux-gnueabi-g++ -Wl,-rpath-link,/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/lib -Wl,--no-undefined -Wl,-rpath,/usr/local/qt4.7.4-arm/lib -Wl,-rpath,/usr/local/qt4.7.4-arm/lib -shared -Wl,-soname,libQtTest.so.4 -o libQtTest.so.4.7.4 .obj/debug-shared-emb-arm/qtestcase.o .obj/debug-shared-emb-arm/qtestlog.o .obj/debug-shared-emb-arm/qtesttable.o .obj/debug-shared-emb-arm/qtestdata.o .obj/debug-shared-emb-arm/qtestresult.o .obj/debug-shared-emb-arm/qasciikey.o .obj/debug-shared-emb-arm/qplaintestlogger.o .obj/debug-shared-emb-arm/qxmltestlogger.o .obj/debug-shared-emb-arm/qsignaldumper.o .obj/debug-shared-emb-arm/qabstracttestlogger.o .obj/debug-shared-emb-arm/qbenchmark.o .obj/debug-shared-emb-arm/qbenchmarkmeasurement.o .obj/debug-shared-emb-arm/qbenchmarkvalgrind.o .obj/debug-shared-emb-arm/qbenchmarkevent.o .obj/debug-shared-emb-arm/qbenchmarkmetric.o .obj/debug-shared-emb-arm/qtestelement.o .obj/debug-shared-emb-arm/qtestelementattribute.o .obj/debug-shared-emb-arm/qtestbasicstreamer.o .obj/debug-shared-emb-arm/qtestxunitstreamer.o .obj/debug-shared-emb-arm/qtestxmlstreamer.o .obj/debug-shared-emb-arm/qtestlightxmlstreamer.o .obj/debug-shared-emb-arm/qtestlogger.o .obj/debug-shared-emb-arm/qtestfilelogger.o .obj/debug-shared-emb-arm/moc_qtesteventloop.o -L/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/lib -lQtCore -L/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/lib -lpthread
    ln -s libQtTest.so.4.7.4 libQtTest.so
    ln -s libQtTest.so.4.7.4 libQtTest.so.4
    ln -s libQtTest.so.4.7.4 libQtTest.so.4.7
    rm -f ../../lib/libQtTest.so.4.7.4
    rm -f ../../lib/libQtTest.so
    rm -f ../../lib/libQtTest.so.4
    rm -f ../../lib/libQtTest.so.4.7
    mv -f libQtTest.so.4.7.4 libQtTest.so libQtTest.so.4 libQtTest.so.4.7 ../../lib/
    make[1]: Leaving directory /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/src/testlib' cd src/gui/ && make -f Makefile make[1]: Entering directory/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/src/gui'
    /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/bin/qmake -spec ../../mkspecs/qws/linux-arm-gnueabi-g++ -o Makefile gui.pro
    make[1]: Leaving directory /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/src/gui' make[1]: Entering directory/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/src/gui'
    /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/bin/uic dialogs/qprintsettingsoutput.ui -o .uic/debug-shared-emb-arm/ui_qprintsettingsoutput.h
    /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/bin/uic dialogs/qprintwidget.ui -o .uic/debug-shared-emb-arm/ui_qprintwidget.h
    /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/bin/uic dialogs/qpagesetupwidget.ui -o .uic/debug-shared-emb-arm/ui_qpagesetupwidget.h
    /home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/bin/uic dialogs/qfiledialog.ui -o .uic/debug-shared-emb-arm/ui_qfiledialog.h
    make[1]: *** [.uic/debug-shared-emb-arm/ui_qpagesetupwidget.h] Segmentation fault
    make[1]: *** Deleting file .uic/debug-shared-emb-arm/ui_qpagesetupwidget.h' make[1]: *** Waiting for unfinished jobs.... make[1]: Leaving directory/home/btl/build/cross/qt4.7.4/qt-everywhere-opensource-src-4.7.4/src/gui'
    make: *** [sub-gui-make_default-ordered] Error 2
    @



  • It appears i was able to resolve this. I built a toolchain from Openembedded using uclibc instead of eglibc.



  • Hi blaroche,

    Can you show the steps and configuration to compile arm-qt?
    Is there a change qmake.conf, change the library on the arm module and the compiler (ex:linux mode)?

    I am interested to compile arm-QT but I still nubie with this arm module. I've managed to compile my qt sample but can not run on my arm module there appears an error message when executed.
    I use a cross compiler gcc-4.3.2-glibc-2.7 (arm-vfp-linux-gnu-g++) and Qtopia-2.2.0-FriendlyARM.


Log in to reply
 

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