Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. cross compile for arm with boost lib

cross compile for arm with boost lib

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
11 Posts 3 Posters 4.7k Views
  • 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 Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Hi and welcome to devnet,

    If you want to use boost on your target then you must make it available for your target also. How did you provide the dependencies for Qt in the first place ? If it is using your device root filesystem then install the boost library dev packages through your device package manager.

    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
    • N Offline
      N Offline
      niokou
      wrote on last edited by niokou
      #3

      Thanks sgaist for your answer.

      I use yocto/poky to compile the image and rootfs. I have include all the lib I need for my project and my target.
      I use a custom scritp to launch QT. In this script I had include:

      SOURCE /opt/.../environement-setup-cortexa5hf-vfp-poky-linux-gnueabi
      

      I have the boost library in the directory :
      opt/poky/1.5.sysroots/x86_64-pokysdk-linux/usr/include

      This way is a little bit nasty but it should works ?

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

        The boost handling should rather be part of your .pro file i.e:

        INCLUDEPATH += /opt/poky/1.5.sysroots/x86_64-pokysdk-linux/usr/include
        LIBS += -L/opt/poky/1.5.sysroots/x86_64-pokysdk-linux/usr/lib
        

        Replace the lib path accordingly

        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
        • N Offline
          N Offline
          niokou
          wrote on last edited by niokou
          #5

          I'm back into this project.
          I modified the pro file:

          INCLUDEPATH += /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/include
          LIBS += -L/opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/lib
          LIBS += -lboost_system
          

          all the .hpp files are in the folder:
          /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/include
          all the libboost***.so are in the folder:
          /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/lib

          Now when I include a boost header:

          #include <boost/asio/signal_set.hpp>
          

          I get these errors:

          /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/lib/libboost_system.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned int&, unsigned int)@GLIBCXX_3.4.21'
          /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/lib/libboost_system.so: undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()@GLIBCXX_3.4.21'
          collect2: error: ld returned 1 exit status
          

          It looks like it doesn't find some others libraries ?

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

            Looks like you're not building your application with C++11 enabled.

            Add CONFIG += c++11 to your .pro file.

            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
            • N Offline
              N Offline
              niokou
              wrote on last edited by
              #7

              I already add to my .pro file:

              CONFIG += C++11
              QMAKE_CXXFLAGS += -std=C++11

              As I compile with a sdk (gcc for arm) done from yocto for a Sama5d3, I guess I need to add something to the SDK or strait to the folder:
              /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/...

              What is needed to compile with ggc for arm with c++11 ?

              When I use the kit destop every things works fine...

              1 Reply Last reply
              0
              • jsulmJ Offline
                jsulmJ Offline
                jsulm
                Lifetime Qt Champion
                wrote on last edited by
                #8

                What is the gcc version you use for ARM?
                QMAKE_CXXFLAGS += -std=C++11 is not needed, CONFIG += c++11 should be enough.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  niokou
                  wrote on last edited by
                  #9

                  I'm using arm-poky-linux-gnueabi-gcc (GCC) 4.8.1 and the sdk/toolchain 1.5
                  I should upgrade the toolchain to 2.0?

                  1 Reply Last reply
                  0
                  • jsulmJ Offline
                    jsulmJ Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on last edited by
                    #10

                    What does

                    ldd /opt/poky/1.6/sysroots/x86_64-pokysdk-linux/usr/lib/libboost_system.so
                    

                    say?

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    1 Reply Last reply
                    0
                    • N Offline
                      N Offline
                      niokou
                      wrote on last edited by niokou
                      #11

                      I have installed the toolchain 2.0.1 with gcc for arm version 5.2.0.
                      Compilation works.
                      Now i try to debug on my target, but it seems that dbg don't find boost libraries.
                      I have this error when I start debugging I use the boost function:

                      Unable to find dynamic linker breakpoint function.
                      GDB will be unable to debug shared library initializers
                      and track explicitly loaded dynamic code.
                      Child exited with status 1
                      GDBserver exiting
                      Debugging has finished

                      dbg on target works fine if I don't use boost function and libraries.
                      On the target in the /usr/lib I have all the libboost*.so !!

                      Is it missing a setup in the configuration of the dbg ?

                      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