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 with X11
Forum Updated to NodeBB v4.3 + New Features

Cross compilation with X11

Scheduled Pinned Locked Moved Solved Mobile and Embedded
49 Posts 5 Posters 24.0k Views 2 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.
  • SGaistS SGaist

    I already wrote it several times: if you want to cross-compile without any device connected, then copy the root filesystem of your device on your desktop machine and cross-compile Qt using it.

    One thing to be clear: if you want to run your cross-compiled application, then you need your device accessible to run said application.

    Out of curiosity, why do you want that much to cross-compile an application without any device connected to confirm it runs properly ?

    T Offline
    T Offline
    thanga
    wrote on last edited by
    #39

    @SGaist
    One of our device is not on network and cannot be mounted. We would like to cross compile the code using QTCreator and copy the executable manually on the target using a SD Card. Let us know if this is possible.
    If yes, then what should be the hostname and credentials in QTCreator Add Device screen?

    1 Reply Last reply
    0
    • SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #40

      Since your device is out of reach, it doesn't make sense to put anything there. Just don't add any device. Build your executable and then copy it on your SD card.

      Interested in AI ? www.idiap.ch
      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

      T 1 Reply Last reply
      0
      • SGaistS SGaist

        Since your device is out of reach, it doesn't make sense to put anything there. Just don't add any device. Build your executable and then copy it on your SD card.

        T Offline
        T Offline
        thanga
        wrote on last edited by
        #41

        @SGaist
        Thanks! I have tried it in the same method. I am getting following error. Could please check it,

        usr/local/linaro/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: note: 'clock_gettime@@GLIBC_2.4' is defined in DSO /media/SSHFS_X11//lib/arm-linux-gnueabihf/librt.so.1 so try adding it to the linker command line
        /media/SSHFS_X11//lib/arm-linux-gnueabihf/librt.so.1: could not read symbols: Invalid operation

        1 Reply Last reply
        0
        • SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #42

          Is that were your device root filesystem has been copied ?

          Interested in AI ? www.idiap.ch
          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

          T 1 Reply Last reply
          0
          • SGaistS SGaist

            Is that were your device root filesystem has been copied ?

            T Offline
            T Offline
            thanga
            wrote on last edited by thanga
            #43

            @SGaist
            QTCreator has an option sysroot wherein it expects the sysroot of the target board. Should the path be the mounted path on actual board ?

            If we have limited set of boards, can we create the ISO image of the target device, copy it on SD Card and then mount it and use this path as Sysroot path. Can we use this to create multiple development systems(environment) which are not dependent on target board.

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #44

              You can copy the content of the root filesystem of your device only our desktop computer and use that as sysroot. Just keep in mind that you'll have to keep it up to date yourself.

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              T 1 Reply Last reply
              0
              • SGaistS SGaist

                You can copy the content of the root filesystem of your device only our desktop computer and use that as sysroot. Just keep in mind that you'll have to keep it up to date yourself.

                T Offline
                T Offline
                thanga
                wrote on last edited by
                #45

                @SGaist
                We have copied the contents of the root filesystem and tried to compile it. We are getting an error as mentioned below. Please note that we are mounting this on a i386 32 bit machine. The target board is arm-linux.

                ./NewQTApp/release/build/arm926/libftd2xx.a(ftd2xx.o): In function `InitCheckDevice':
                ftd2xx.c:(.text+0x2d0): warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
                /usr/local/linaro/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: ../NewQTApp/release/build/arm926/libftd2xx.a(linux_usbfs.o): undefined reference to symbol 'clock_gettime@@GLIBC_2.4'
                /usr/local/linaro/bin/../lib/gcc/arm-linux-gnueabihf/4.7.3/../../../../arm-linux-gnueabihf/bin/ld: note: 'clock_gettime@@GLIBC_2.4' is defined in DSO /media/SSHFS_X11//lib/arm-linux-gnueabihf/librt.so.1 so try adding it to the linker command line
                /media/SSHFS_X11//lib/arm-linux-gnueabihf/librt.so.1: could not read symbols: Invalid operation
                collect2: error: ld returned 1 exit status
                make: *** [NewQTApp] Error 1
                20:15:03: The process "/usr/bin/make" exited with code 2.
                Error while building/deploying project NewQTApp (kit: Linaro)

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #46

                  Looks like there's a mismatch between the version of gcc used to build your application and the one used for the sysroot.

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  T 1 Reply Last reply
                  0
                  • SGaistS SGaist

                    Looks like there's a mismatch between the version of gcc used to build your application and the one used for the sysroot.

                    T Offline
                    T Offline
                    thanga
                    wrote on last edited by
                    #47

                    @SGaist
                    Thank you very much!!! Finally, it's working fine. I can able build Qt application without the real (Target) device.
                    Thanks!!

                    1 Reply Last reply
                    0
                    • V Offline
                      V Offline
                      vinnie92
                      wrote on last edited by
                      #48

                      Hi @SGaist ,
                      what about installing armhf packages on the local machine instead of sysroot? I want to cross compile Qt for arm/X11 on a x86 debian machine and I was thinking to install all the dependencies on the x86 machine installing libs for armhf architecture (I previously added the armhf architecture with dpkg --add-architecture armhf). Is this possible? (I already did a try but I had some linking error on X11 and fontconfig libraries).
                      Thanks you

                      1 Reply Last reply
                      0
                      • SGaistS Offline
                        SGaistS Offline
                        SGaist
                        Lifetime Qt Champion
                        wrote on last edited by
                        #49

                        Hi and welcome to devnet,

                        That might work however you won't have the specific stuff from your device available if you do so (e.g. OpenGL libraries).

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        1 Reply Last reply
                        0

                        • Login

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