Important: Please read the Qt Code of Conduct -

Linux->ARM cross-compilation in trouble

  • Trying cross-compilation from x86 Linux to ARM. The following command line

    ./configure -v -confirm-license -embedded arm -platform qws/linux-x86-g++ -xplatform qws/linux-arm-g++ -opensource
    -qt-mouse-linuxtp -no-multimedia -no-audio-backend -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script
    -no-scripttools -no-declarative-debug -platform qws/linux-arm-g++ -no-gif -no-libtiff -no-libmng -no-openssl
    -no-cups -no-nis -I/usr/project/CHIPOTLE/linux-2.6.10/include -L/usr/project/armtools/arm-linux/lib

    results in qmake compilation being attempted with the following command line:

    g++ arm-linux-g++ -c -o option.o -pipe -DQMAKE_OPENSOURCE_EDITION -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/mac -Igenerators/symbian -I/usr/project/CHIPOTLE/Qt4/qt-everywhere-opensource-src-4.7.4/include -I/usr/project/CHIPOTLE/Qt4/qt-everywhere-opensource-src-4.7.4/include/QtCore -I/usr/project/CHIPOTLE/Qt4/qt-everywhere-opensource-src-4.7.4/src/corelib/global -I/usr/project/CHIPOTLE/Qt4/qt-everywhere-opensource-src-4.7.4/src/corelib/xml -I/usr/project/CHIPOTLE/Qt4/qt-everywhere-opensource-src-4.7.4/tools/shared -DQT_NO_PCRE -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT -DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL -DQT_NO_COMPRESS -I/usr/project/CHIPOTLE/Qt4/qt-everywhere-opensource-src-4.7.4/mkspecs/qws/linux-arm-g++ -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT option.cpp

    That fails because it begins with the compiler names of both the host platform "g++" and the target platform "arm-linux-g++". When I look at the Makefile in the qmake directory, it contains lines consistent with the foregoing:

    CXX_1 = g++
    CXX_2 = arm-linux-g++
    CXX = $(CXX_1) $(CXX_2)

    Such concatenation of compiler names doesn't make sense to me. Can anyone explain that or help me to get the configuration right, please?

  • You have two "-platform" parameters in your configure command

  • Thanks! It was that simple. :-)

Log in to reply