Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. Cross Compilation issue for qt
Forum Updated to NodeBB v4.3 + New Features

Cross Compilation issue for qt

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
21 Posts 4 Posters 5.8k Views 4 Watching
  • 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.
  • raven-worxR raven-worx

    @upendar25 said in Cross Compilation issue for qt:

    Yes. I have installed the cross compiler for STM. I am able to cross compile helloworld program and run on Target.
    I have one doubt. This method with configure, make, make install, do i have to move the built files to my Target? or it creates cross compiler with qt on host PC?

    since you say you are able to run your cross compiled exectuable on the target i dont understand what your second question is about?

    U Offline
    U Offline
    upendar25
    wrote on last edited by
    #12

    @raven-worx This helloworld program uses GTK module and built by creating a makefile. It works fine. But i am unable to build the same with Qt5. Forthis i need Qt libraries and toolchain to compile qt applications.

    @koahnig

    I have downloaded the qt source and tried to configure for my device. But got the below error.

    Creating qmake...
    make: Nothing to be done for 'first'.
    Command line: -release -release -opengl es2 -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi-gcc -sysroot usr/local -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests -skip qt3d -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -no-feature-texthtmlparser -no-feature-textodfwriter -no-feature-concurrent -no-feature-effects -no-feature-sharedmemory -no-feature-systemsemaphore -no-feature-im -no-feature-process -no-feature-dom -no-feature-filesystemmodel -no-feature-filesystemwatcher -no-feature-graphicsview -no-feature-graphicseffect -no-feature-sizegrip -no-feature-calendarwidget -no-feature-printpreviewwidget -no-feature-keysequenceedit -no-feature-colordialog -no-feature-filedialog -no-feature-fontdialog -no-feature-printpreviewdialog -no-feature-progressdialog -no-feature-inputdialog -no-feature-errormessage -no-feature-wizard -no-feature-datawidgetmapper -no-feature-imageformat_bmp -no-feature-imageformat_ppm -no-feature-imageformat_xbm -no-feature-imageformat_png -no-feature-imageformat_jpeg -no-feature-image_heuristic_mask -no-feature-image_text -no-feature-colornames -no-feature-cups -no-feature-paint_debug -no-feature-freetype -no-feature-translation -no-feature-codecs -no-feature-big_codecs -no-feature-iconv -no-feature-ftp -no-feature-udpsocket -no-feature-networkproxy -no-feature-socks5 -no-feature-networkdiskcache -no-feature-bearermanagement -no-feature-completer -no-feature-fscompleter -no-feature-desktopservices -no-feature-mimetype -no-feature-systemtrayicon -no-feature-undocommand -no-feature-undostack -no-feature-undogroup -no-feature-undoview -no-feature-statemachine -no-feature-gestures -no-feature-dbus -v
    Project ERROR: Cannot run target compiler 'arm-linux-gnueabi-g++'. Output:

    ===================
    Maybe you forgot to setup the environment?

    [0_1556909255290_qmake.conf](Uploading 100%)

    raven-worxR 1 Reply Last reply
    0
    • U upendar25

      @raven-worx This helloworld program uses GTK module and built by creating a makefile. It works fine. But i am unable to build the same with Qt5. Forthis i need Qt libraries and toolchain to compile qt applications.

      @koahnig

      I have downloaded the qt source and tried to configure for my device. But got the below error.

      Creating qmake...
      make: Nothing to be done for 'first'.
      Command line: -release -release -opengl es2 -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi-gcc -sysroot usr/local -opensource -confirm-license -make libs -nomake tools -nomake examples -nomake tests -skip qt3d -skip qtandroidextras -skip qtcanvas3d -skip qtcharts -skip qtconnectivity -skip qtdatavis3d -skip qtdeclarative -skip qtdoc -skip qtgamepad -skip qtgraphicaleffects -skip qtimageformats -skip qtlocation -skip qtmacextras -skip qtmultimedia -skip qtnetworkauth -skip qtpurchasing -skip qtquickcontrols -skip qtquickcontrols2 -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtvirtualkeyboard -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtwinextras -skip qtx11extras -skip qtxmlpatterns -no-feature-texthtmlparser -no-feature-textodfwriter -no-feature-concurrent -no-feature-effects -no-feature-sharedmemory -no-feature-systemsemaphore -no-feature-im -no-feature-process -no-feature-dom -no-feature-filesystemmodel -no-feature-filesystemwatcher -no-feature-graphicsview -no-feature-graphicseffect -no-feature-sizegrip -no-feature-calendarwidget -no-feature-printpreviewwidget -no-feature-keysequenceedit -no-feature-colordialog -no-feature-filedialog -no-feature-fontdialog -no-feature-printpreviewdialog -no-feature-progressdialog -no-feature-inputdialog -no-feature-errormessage -no-feature-wizard -no-feature-datawidgetmapper -no-feature-imageformat_bmp -no-feature-imageformat_ppm -no-feature-imageformat_xbm -no-feature-imageformat_png -no-feature-imageformat_jpeg -no-feature-image_heuristic_mask -no-feature-image_text -no-feature-colornames -no-feature-cups -no-feature-paint_debug -no-feature-freetype -no-feature-translation -no-feature-codecs -no-feature-big_codecs -no-feature-iconv -no-feature-ftp -no-feature-udpsocket -no-feature-networkproxy -no-feature-socks5 -no-feature-networkdiskcache -no-feature-bearermanagement -no-feature-completer -no-feature-fscompleter -no-feature-desktopservices -no-feature-mimetype -no-feature-systemtrayicon -no-feature-undocommand -no-feature-undostack -no-feature-undogroup -no-feature-undoview -no-feature-statemachine -no-feature-gestures -no-feature-dbus -v
      Project ERROR: Cannot run target compiler 'arm-linux-gnueabi-g++'. Output:

      ===================
      Maybe you forgot to setup the environment?

      [0_1556909255290_qmake.conf](Uploading 100%)

      raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by raven-worx
      #13

      @upendar25 said in Cross Compilation issue for qt:

      -device stlinux-arm-gnueabi-g++

      there is no such device available?
      Did you add it a mkspec for it yourself? If so please show it.

      CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi-gcc

      should actually look like
      CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi-

      -sysroot usr/local

      are you sure this is your sysroot? If so it shouldn't it be -sysroot /usr/local?

      also you may want to specify something like -prefix /usr/lib/myqt -hostprefix /home/upendar/myqt. After make install copy everything from /home/upendar/myqt (local) to /usr/lib/myqt (on the target device)

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      U 1 Reply Last reply
      2
      • raven-worxR raven-worx

        @upendar25 said in Cross Compilation issue for qt:

        -device stlinux-arm-gnueabi-g++

        there is no such device available?
        Did you add it a mkspec for it yourself? If so please show it.

        CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi-gcc

        should actually look like
        CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi-

        -sysroot usr/local

        are you sure this is your sysroot? If so it shouldn't it be -sysroot /usr/local?

        also you may want to specify something like -prefix /usr/lib/myqt -hostprefix /home/upendar/myqt. After make install copy everything from /home/upendar/myqt (local) to /usr/lib/myqt (on the target device)

        U Offline
        U Offline
        upendar25
        wrote on last edited by
        #14

        @raven-worx Thank you for the detailed reply.

        I am not sure of sysroot. How to find it for a device?

        and I ran the configure command with the changes you specified. I got the following error.

        • arm-openstlinux_weston-linux-gnueabi-g++ -dumpmachine

        arm-openstlinux_weston-linux-gnueabi
        Checking for valid makespec...

        • cd /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/config.tests/verifyspec && /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/usr/local" "QMAKE_CXXFLAGS += --sysroot=/usr/local" "QMAKE_LFLAGS += --sysroot=/usr/local" -early "CONFIG += cross_compile" /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/config.tests/verifyspec
        • cd /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make

        rm -f verifyspec.o
        rm -f *~ core *.core
        arm-openstlinux_weston-linux-gnueabi-g++ -c -pipe --sysroot=/usr/local -O2 -w -fPIC -I/home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/config.tests/verifyspec -I. -I/home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/mkspecs/devices/stlinux-arm-gnueabi-g++ -o verifyspec.o /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/config.tests/verifyspec/verifyspec.cpp
        arm-openstlinux_weston-linux-gnueabi-g++ --sysroot=/usr/local -Wl,-O1 -o verifyspec verifyspec.o
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crt1.o: No such file or directory
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crti.o: No such file or directory
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crtbegin.o: No such file or directory
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lstdc++
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lm
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc_s
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lc
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc_s
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crtend.o: No such file or directory
        /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crtn.o: No such file or directory
        collect2: error: ld returned 1 exit status
        Makefile:68: recipe for target 'verifyspec' failed
        make: *** [verifyspec] Error 1
        Note: Also available for Linux: linux-clang linux-icc

        ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.

        My Mkspec file:

        qmake configuration for building with arm-openstlinux_weston-linux-gnueabi-g++

        MAKEFILE_GENERATOR = UNIX
        CONFIG += incremental
        QMAKE_INCREMENTAL_STYLE = sublib

        include(../common/linux.conf)
        include(../common/gcc-base-unix.conf)
        include(../common/g++-unix.conf)

        modifications to g++.conf

        QMAKE_CC = arm-openstlinux_weston-linux-gnueabi-gcc
        QMAKE_CXX = arm-openstlinux_weston-linux-gnueabi-g++
        QMAKE_LINK = arm-openstlinux_weston-linux-gnueabi-g++
        QMAKE_LINK_SHLIB = arm-openstlinux_weston-linux-gnueabi-g++

        modifications to linux.conf

        QMAKE_AR = arm-openstlinux_weston-linux-gnueabi-ar cqs
        QMAKE_OBJCOPY = arm-openstlinux_weston-linux-gnueabi-objcopy
        QMAKE_NM = arm-openstlinux_weston-linux-gnueabi-nm -P
        QMAKE_STRIP = arm-openstlinux_weston-linux-gnueabi-strip
        load(qt_config).

        This i created using a generic file in qtbase/devices. I am not sure its correct but i am going with it.

        raven-worxR 1 Reply Last reply
        0
        • U upendar25

          @raven-worx Thank you for the detailed reply.

          I am not sure of sysroot. How to find it for a device?

          and I ran the configure command with the changes you specified. I got the following error.

          • arm-openstlinux_weston-linux-gnueabi-g++ -dumpmachine

          arm-openstlinux_weston-linux-gnueabi
          Checking for valid makespec...

          • cd /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/config.tests/verifyspec && /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" "QMAKE_CFLAGS += --sysroot=/usr/local" "QMAKE_CXXFLAGS += --sysroot=/usr/local" "QMAKE_LFLAGS += --sysroot=/usr/local" -early "CONFIG += cross_compile" /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/config.tests/verifyspec
          • cd /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/config.tests/verifyspec && MAKEFLAGS= /usr/bin/make clean && MAKEFLAGS= /usr/bin/make

          rm -f verifyspec.o
          rm -f *~ core *.core
          arm-openstlinux_weston-linux-gnueabi-g++ -c -pipe --sysroot=/usr/local -O2 -w -fPIC -I/home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/config.tests/verifyspec -I. -I/home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/mkspecs/devices/stlinux-arm-gnueabi-g++ -o verifyspec.o /home/upendar/Data/Qt5/qt-everywhere-src-5.12.3/qtbase/config.tests/verifyspec/verifyspec.cpp
          arm-openstlinux_weston-linux-gnueabi-g++ --sysroot=/usr/local -Wl,-O1 -o verifyspec verifyspec.o
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crt1.o: No such file or directory
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crti.o: No such file or directory
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crtbegin.o: No such file or directory
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lstdc++
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lm
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc_s
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lc
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc_s
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find -lgcc
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crtend.o: No such file or directory
          /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/libexec/arm-openstlinux_weston-linux-gnueabi/gcc/arm-openstlinux_weston-linux-gnueabi/8.2.0/real-ld: cannot find crtn.o: No such file or directory
          collect2: error: ld returned 1 exit status
          Makefile:68: recipe for target 'verifyspec' failed
          make: *** [verifyspec] Error 1
          Note: Also available for Linux: linux-clang linux-icc

          ERROR: Cannot compile a minimal program. The toolchain or QMakeSpec is broken.

          My Mkspec file:

          qmake configuration for building with arm-openstlinux_weston-linux-gnueabi-g++

          MAKEFILE_GENERATOR = UNIX
          CONFIG += incremental
          QMAKE_INCREMENTAL_STYLE = sublib

          include(../common/linux.conf)
          include(../common/gcc-base-unix.conf)
          include(../common/g++-unix.conf)

          modifications to g++.conf

          QMAKE_CC = arm-openstlinux_weston-linux-gnueabi-gcc
          QMAKE_CXX = arm-openstlinux_weston-linux-gnueabi-g++
          QMAKE_LINK = arm-openstlinux_weston-linux-gnueabi-g++
          QMAKE_LINK_SHLIB = arm-openstlinux_weston-linux-gnueabi-g++

          modifications to linux.conf

          QMAKE_AR = arm-openstlinux_weston-linux-gnueabi-ar cqs
          QMAKE_OBJCOPY = arm-openstlinux_weston-linux-gnueabi-objcopy
          QMAKE_NM = arm-openstlinux_weston-linux-gnueabi-nm -P
          QMAKE_STRIP = arm-openstlinux_weston-linux-gnueabi-strip
          load(qt_config).

          This i created using a generic file in qtbase/devices. I am not sure its correct but i am going with it.

          raven-worxR Offline
          raven-worxR Offline
          raven-worx
          Moderators
          wrote on last edited by raven-worx
          #15

          @upendar25 said in Cross Compilation issue for qt:

          I am not sure of sysroot. How to find it for a device?

          a sysroot is a directory structure, similiar to a separate Linux root / structure. Normally this comes along with the cross compiler. It contains the libs for the traget platform the cross-compiler should link against.

          modifications to g++.conf
          modifications to g++.conf

          you are overwriting the compilers. Are those really globally accessible?

          linux_device_pre.conf already contains:

          QMAKE_CC                = $${CROSS_COMPILE}gcc
          QMAKE_CXX               = $${CROSS_COMPILE}g++
          QMAKE_LINK              = $${QMAKE_CXX}
          QMAKE_LINK_SHLIB        = $${QMAKE_CXX}
          

          Which already produces the calls you need with the CROSS_COMPILE variable i suggested.

          I dont know if the cross compiler needs any special parameters/flags? If so only define those within this minimal device:

          include(../common/linux_device_pre.conf)
          
          # QMAKE VARIABLE MODIFICATIONS HERE
          
          include(../common/linux_arm_device_post.conf)
          
          load(qt_config)
          

          Make sure you set the CROSS_COMPILE variable (like you already do).

          --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
          If you have a question please use the forum so others can benefit from the solution in the future

          U 1 Reply Last reply
          1
          • raven-worxR raven-worx

            @upendar25 said in Cross Compilation issue for qt:

            I am not sure of sysroot. How to find it for a device?

            a sysroot is a directory structure, similiar to a separate Linux root / structure. Normally this comes along with the cross compiler. It contains the libs for the traget platform the cross-compiler should link against.

            modifications to g++.conf
            modifications to g++.conf

            you are overwriting the compilers. Are those really globally accessible?

            linux_device_pre.conf already contains:

            QMAKE_CC                = $${CROSS_COMPILE}gcc
            QMAKE_CXX               = $${CROSS_COMPILE}g++
            QMAKE_LINK              = $${QMAKE_CXX}
            QMAKE_LINK_SHLIB        = $${QMAKE_CXX}
            

            Which already produces the calls you need with the CROSS_COMPILE variable i suggested.

            I dont know if the cross compiler needs any special parameters/flags? If so only define those within this minimal device:

            include(../common/linux_device_pre.conf)
            
            # QMAKE VARIABLE MODIFICATIONS HERE
            
            include(../common/linux_arm_device_post.conf)
            
            load(qt_config)
            

            Make sure you set the CROSS_COMPILE variable (like you already do).

            U Offline
            U Offline
            upendar25
            wrote on last edited by
            #16

            @raven-worx Hi..

            I did these changes. But still there seems to be a problem with configure options.

            ./configure -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -v

            • cd qtbase
            • /home/upendar/STM32MPU_workspace/qt-everywhere-src-5.12.3/qtbase/configure -top-level -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -v
              Creating qmake...
              make: Nothing to be done for 'first'.
              Command line: -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -v
              Project ERROR: Cannot run target compiler '/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi-g++'. Output:
              ===================
              ===================
              Maybe you forgot to setup the environment?
              .

            echo $CROSS_COMPILE
            arm-openstlinux_weston-linux-gnueabi-

            CROSS_COMPILE is set. Still its not being recognized.

            raven-worxR 1 Reply Last reply
            0
            • U upendar25

              @raven-worx Hi..

              I did these changes. But still there seems to be a problem with configure options.

              ./configure -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -v

              • cd qtbase
              • /home/upendar/STM32MPU_workspace/qt-everywhere-src-5.12.3/qtbase/configure -top-level -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -v
                Creating qmake...
                make: Nothing to be done for 'first'.
                Command line: -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot /home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/Developer-Package/SDK/sysroots/cortexa7t2hf-neon-vfpv4-openstlinux_weston-linux-gnueabi -v
                Project ERROR: Cannot run target compiler '/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi-g++'. Output:
                ===================
                ===================
                Maybe you forgot to setup the environment?
                .

              echo $CROSS_COMPILE
              arm-openstlinux_weston-linux-gnueabi-

              CROSS_COMPILE is set. Still its not being recognized.

              raven-worxR Offline
              raven-worxR Offline
              raven-worx
              Moderators
              wrote on last edited by
              #17

              @upendar25 said in Cross Compilation issue for qt:

              Project ERROR: Cannot run target compiler '/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi-g++'.

              can you run it?

              --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
              If you have a question please use the forum so others can benefit from the solution in the future

              U 1 Reply Last reply
              0
              • raven-worxR raven-worx

                @upendar25 said in Cross Compilation issue for qt:

                Project ERROR: Cannot run target compiler '/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi-g++'.

                can you run it?

                U Offline
                U Offline
                upendar25
                wrote on last edited by
                #18

                @raven-worx Surprisingly no. It says no file or directory. But i have that file in that location. I have reinstalled the cross compiler SDK.

                I am able to cross compile using a makefile running it in the SDK environment. But separately with this g++, i am unable to compile a cpp file.

                raven-worxR 1 Reply Last reply
                0
                • U upendar25

                  @raven-worx Surprisingly no. It says no file or directory. But i have that file in that location. I have reinstalled the cross compiler SDK.

                  I am able to cross compile using a makefile running it in the SDK environment. But separately with this g++, i am unable to compile a cpp file.

                  raven-worxR Offline
                  raven-worxR Offline
                  raven-worx
                  Moderators
                  wrote on last edited by
                  #19

                  @upendar25 said in Cross Compilation issue for qt:

                  Surprisingly no. It says no file or directory. But i have that file in that location.

                  for sure you are overseeing something here

                  --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                  If you have a question please use the forum so others can benefit from the solution in the future

                  U 1 Reply Last reply
                  0
                  • raven-worxR raven-worx

                    @upendar25 said in Cross Compilation issue for qt:

                    Surprisingly no. It says no file or directory. But i have that file in that location.

                    for sure you are overseeing something here

                    U Offline
                    U Offline
                    upendar25
                    wrote on last edited by
                    #20

                    @raven-worx I think so. But i am unable to figure it out.

                    I have done the following steps.

                    Hardware: STM32MP157c-DK2 with Cortex A7 and M4

                    SDK is installed : https://wiki.st.com/stm32mpu/index.php/STM32MP1_Developer_Package#Installing_the_SDK

                    Qt12.3 : https://download.qt.io/archive/qt/5.12/5.12.3/single/qt-everywhere-src-5.12.3.tar.xz

                    Configure command: ./configure -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux -v
                    .

                    if someone can point my mistake, it would help me a lot.

                    Thank you!

                    raven-worxR 1 Reply Last reply
                    0
                    • U upendar25

                      @raven-worx I think so. But i am unable to figure it out.

                      I have done the following steps.

                      Hardware: STM32MP157c-DK2 with Cortex A7 and M4

                      SDK is installed : https://wiki.st.com/stm32mpu/index.php/STM32MP1_Developer_Package#Installing_the_SDK

                      Qt12.3 : https://download.qt.io/archive/qt/5.12/5.12.3/single/qt-everywhere-src-5.12.3.tar.xz

                      Configure command: ./configure -release -opengl es2 -opensource -confirm-license -device stlinux-arm-gnueabi-g++ -device-option CROSS_COMPILE=/home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux/usr/bin/arm-openstlinux_weston-linux-gnueabi/arm-openstlinux_weston-linux-gnueabi- -sysroot home/upendar/STM32MPU_workspace/STM32MP15-Ecosystem-v1.0.0/sysroots/x86_64-openstlinux_weston_sdk-linux -v
                      .

                      if someone can point my mistake, it would help me a lot.

                      Thank you!

                      raven-worxR Offline
                      raven-worxR Offline
                      raven-worx
                      Moderators
                      wrote on last edited by
                      #21

                      @upendar25
                      i mean the path is obviously wrong when you can't execute it.
                      Check it directory by directory and you will find the mistake. Once you found it adapt the CROSS_COMPILE parameter accordingly.

                      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                      If you have a question please use the forum so others can benefit from the solution in the future

                      1 Reply Last reply
                      2

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved