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.
  • K koahnig

    @upendar25

    When I have to do a Qt compilation I am typically using a version from Qt archives https://download.qt.io/archive/qt/ . Those shall be the stablest versions avalable.
    There is also a Git link with all versions. Unfortunately, I do not have the link at hand.

    For compilation on linux you need *.tar.xz e.g. https://download.qt.io/archive/qt/5.12/5.12.3/single/qt-everywhere-src-5.12.3.tar.xz for Qt5.12.3 . The zips are for compilation on windows.

    I have done the cross-compile for RPi based on the guide (link given above). When your device is not part of mkspecs provided by Qt you typically may try the generic ones. Create folders as with other devices (similar to RPi versions) with a name on your desire. This name has to be used in the configure statement.

    Have you downloaded and installed already the cross-compiler for STM device?

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

    @koahnig

    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?

    Pablo J. RoginaP raven-worxR 2 Replies Last reply
    0
    • U upendar25

      @koahnig

      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?

      Pablo J. RoginaP Offline
      Pablo J. RoginaP Offline
      Pablo J. Rogina
      wrote on last edited by Pablo J. Rogina
      #10

      @upendar25 take a look at section Qt Creator from RaspberryPi2EGLFS guide to grasp an idea of how "Qt Creator can be set up to build, deploy, run and debug Qt apps directly on the device with one click"

      Upvote the answer(s) that helped you solve the issue
      Use "Topic Tools" button to mark your post as Solved
      Add screenshots via postimage.org
      Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

      1 Reply Last reply
      3
      • U upendar25

        @koahnig

        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?

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

        @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?

        --- 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:

          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