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. [SOLVED] Error in cross compilation for ARM OMAP35x development kit
QtWS25 Last Chance

[SOLVED] Error in cross compilation for ARM OMAP35x development kit

Scheduled Pinned Locked Moved Mobile and Embedded
4 Posts 2 Posters 5.4k 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.
  • K Offline
    K Offline
    koahnig
    wrote on last edited by
    #1

    Hi there,
    I am trying to compile Qt as static library for an OMAP35x development kit.
    The Cross compiler is from CodeSourcery. The cross compilation for a standard hello world program does work.

    I have tried the open source versions of Qt 4.7.2, 4.7.0 and finally 4.4.3. The configure step does work. It uses following command line:
    @./configure -embedded arm -little-endian -xplatform qws/omap3530 -no-qt3support -no-xmlpatterns -no-phonon -no-svg -no-webkit -no-accessibility -no-largefile -no-cups -static -prefix /home/xxx/qt-4.4.3-static-omap@

    In the subsequent make step I am encountering always the same problem (see below).

    @ns/ && make -f Makefile install
    make[2]: Entering directory /home/xxx/QT_4.4.3/src/plugins/decorations' make[2]: Nothing to be done for install'.
    make[2]: Leaving directory /home/xxx/QT_4.4.3/src/plugins/decorations' cd mousedrivers/ && make -f Makefile install make[2]: Entering directory /home/xxx/QT_4.4.3/src/plugins/mousedrivers'
    make[2]: Nothing to be done for install'. make[2]: Leaving directory /home/xxx/QT_4.4.3/src/plugins/mousedrivers'
    cd kbddrivers/ && make -f Makefile install
    make[2]: Entering directory /home/xxx/QT_4.4.3/src/plugins/kbddrivers' make[2]: Nothing to be done for install'.
    make[2]: Leaving directory /home/xxx/QT_4.4.3/src/plugins/kbddrivers' make[1]: Leaving directory /home/xxx/QT_4.4.3/src/plugins'
    cd examples/ && make -f Makefile install
    make[1]: Entering directory /home/xxx/QT_4.4.3/examples' cd desktop/ && make -f Makefile install make[2]: Entering directory /home/xxx/QT_4.4.3/examples/desktop'
    cd screenshot/ && make -f Makefile install
    make[3]: Entering directory /home/xxx/QT_4.4.3/examples/desktop/screenshot' /home/xxx/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-g++ -Wl,-rpath,/home/xxx/qt-4.4.3-static-omap/lib -Wl,-rpath,/home/xxx/qt-4.4.3-static-omap/lib -o screenshot .obj/release-static-emb-arm/main.o .obj/release-static-emb-arm/screenshot.o .obj/release-static-emb-arm/moc_screenshot.o -L/home/xxx/QT_4.4.3/lib -lQtGui -L/home/xxx/QT_4.4.3/lib -lQtNetwork -lQtCore -lm -ldl -lpthread /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcherPrivate::initForcedEngine(QString const&)':
    qfilesystemwatcher.cpp:(.text+0x500): undefined reference to QInotifyFileSystemWatcherEngine::create()' qfilesystemwatcher.cpp:(.text+0x510): undefined reference to QDnotifyFileSystemWatcherEngine::create()'
    /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcherPrivate::createNativeEngine()': qfilesystemwatcher.cpp:(.text+0x524): undefined reference to QInotifyFileSystemWatcherEngine::create()'
    qfilesystemwatcher.cpp:(.text+0x530): undefined reference to QDnotifyFileSystemWatcherEngine::create()' /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcherPrivate::init()':
    qfilesystemwatcher.cpp:(.text+0x740): undefined reference to QInotifyFileSystemWatcherEngine::create()' qfilesystemwatcher.cpp:(.text+0x7a0): undefined reference to QDnotifyFileSystemWatcherEngine::create()'
    /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcher::QFileSystemWatcher(QObject*)': qfilesystemwatcher.cpp:(.text+0xb20): undefined reference to QInotifyFileSystemWatcherEngine::create()'
    qfilesystemwatcher.cpp:(.text+0xb80): undefined reference to QDnotifyFileSystemWatcherEngine::create()' /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcher::QFileSystemWatcher(QObject*)':
    qfilesystemwatcher.cpp:(.text+0xc00): undefined reference to QInotifyFileSystemWatcherEngine::create()' qfilesystemwatcher.cpp:(.text+0xc60): undefined reference to QDnotifyFileSystemWatcherEngine::create()'
    /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcher::QFileSystemWatcher(QStringList const&, QObject*)': qfilesystemwatcher.cpp:(.text+0x4c54): undefined reference to QInotifyFileSystemWatcherEngine::create()'
    qfilesystemwatcher.cpp:(.text+0x4cc0): undefined reference to QDnotifyFileSystemWatcherEngine::create()' /home/xxx/QT_4.4.3/lib/libQtCore.a(qfilesystemwatcher.o): In function QFileSystemWatcher::QFileSystemWatcher(QStringList const&, QObject*)':
    qfilesystemwatcher.cpp:(.text+0x4d44): undefined reference to QInotifyFileSystemWatcherEngine::create()' qfilesystemwatcher.cpp:(.text+0x4db0): undefined reference to QDnotifyFileSystemWatcherEngine::create()'
    collect2: ld returned 1 exit status
    make[3]: *** [screenshot] Error 1
    make[3]: Leaving directory /home/xxx/QT_4.4.3/examples/desktop/screenshot' make[2]: *** [sub-screenshot-install_subtargets-ordered] Error 2 make[2]: Leaving directory /home/xxx/QT_4.4.3/examples/desktop'
    make[1]: *** [sub-desktop-install_subtargets] Error 2
    make[1]: Leaving directory `/home/xxx/QT_4.4.3/examples'
    make: *** [sub-examples-install_subtargets-ordered] Error 2
    xxx@xxx-ThinkPad-T60:~/QT_4.4.3$ @

    The OS on the compiling host is Ubuntu 10.10 32bit.

    Thanks for any hints in advance,
    Hans

    Vote the answer(s) that helped you to solve your issue(s)

    1 Reply Last reply
    0
    • J Offline
      J Offline
      jbarron
      wrote on last edited by
      #2

      The problem is that the mkspec you are using "qws/omap3530" does not start with "linux-". As a result, the INotify/DNotify file system watcher backends are not getting compiled. Take a look at src/corelib/io/io.pri:

      @
      linux-* {
      SOURCES +=
      io/qfilesystemwatcher_inotify.cpp
      io/qfilesystemwatcher_dnotify.cpp

              HEADERS += \
                      io/qfilesystemwatcher_inotify_p.h \
                      io/qfilesystemwatcher_dnotify_p.h
          }
      

      @

      You can either modify io.pri to ensure those files are compiled or you can rename your mkspec to "linux-omap3530" and then re-configure.

      1 Reply Last reply
      0
      • K Offline
        K Offline
        koahnig
        wrote on last edited by
        #3

        Thanks for the insight to .pri logic.

        I have managed to compile by ignoring the examples in the make, but a bad feeling remains. Certainly I will give it a shot.

        Vote the answer(s) that helped you to solve your issue(s)

        1 Reply Last reply
        0
        • K Offline
          K Offline
          koahnig
          wrote on last edited by
          #4

          That did the trick.

          Versions 4.4.3 and 4.7.2 did compile smoothly including the examples and demos.

          Thanks again to jbarron

          Vote the answer(s) that helped you to solve your issue(s)

          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