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. Unknown module(s) in QT: quick qml
QtWS25 Last Chance

Unknown module(s) in QT: quick qml

Scheduled Pinned Locked Moved Solved Installation and Deployment
19 Posts 6 Posters 65.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.
  • X Offline
    X Offline
    Xooch
    wrote on 4 Jun 2014, 21:55 last edited by A Former User 8 Dec 2016, 14:01
    #1

    I'm developing for an embedded ARM Linux system, and I've just now been able to:

    • Successfully build Qt 5.2.1 and install it on my target.
    • Installed Qt Creator on my Ubuntu 12.04 VM.
    • Built, deployed, and debugged a widgets application from my host to my target

    However, I cannot do the same with a Qt Quick application. For example, when I try to load and build an application that uses Qt Quick (such as the "Qt Quick Controls - Gallery" example that is installed with Creator), I get the error "Unknown modules(s) in QT: quick qml".

    The libraries that ended up on my target are: libQt5Concurrent.so libQt5Core.so libQt5Gui.so libQt5Network.so libQt5OpenGL.so libQt5PrintSupport.so libQt5Sql.so libQt5Test.so libQt5Widgets.so libQt5Xml.so

    I notice that libQt5Quick.so and libQt5Qml.so are not in that list. I looked through the Qt configure documentation, but it does not appear that Qt Quick is an option that can be enabled/disabled, so I assume it should have been built and installed?

    Here is the output from configure if it might help:

    @Building on: linux-g++ (i386, CPU features:)
    Building for: arm-linux-gnueabihf-g++ (arm, CPU features:)
    Platform notes:

            - Also available for Linux: linux-kcc linux-icc linux-cxx
    

    qmake vars .......... styles += mac fusion windows DEFINES += QT_NO_MTDEV DEFINES += QT_NO_XCB DEFINES += QT_NO_XKBCOMMON sql-drivers = sql-plugins = sqlite qmake switches .........

    Build options:
    Configuration .......... accessibility alsa audio-backend c++11 clock-gettime clock-monotonic compile_examples concurrent cross_compile egl eglfs evdev eventfd freetype full-config getaddrinfo getifaddrs
    iconv inotify ipv6ifname large-config largefile libudev linuxfb medium-config minimal-config mremap neon nis no-harfbuzz opengl opengles2 openssl pcre png posix_fallocate qpa qpa reduce_exports reduce_rel
    ocations release rpath shared small-config system-jpeg system-png system-zlib
    Build parts ............ libs examples
    Mode ................... release
    Using C++11 ............ yes
    Using PCH .............. no
    Target compiler supports:
    iWMMXt/Neon .......... no/yes

    Qt modules and options:
    Qt D-Bus ............... no
    Qt Concurrent .......... yes
    Qt GUI ................. yes
    Qt Widgets ............. yes
    JavaScriptCore JIT ..... yes (To be decided by JavaScriptCore)
    QML debugging .......... yes
    Use system proxies ..... no

    Support enabled for:
    Accessibility .......... yes
    ALSA ................... yes
    CUPS ................... no
    FontConfig ............. no
    FreeType ............... yes
    Iconv .................. yes
    ICU .................... no
    Image formats:
    GIF .................. yes (plugin, using bundled copy)
    JPEG ................. yes (plugin, using system library)
    PNG .................. yes (in QtGui, using system library)
    Glib ................... no
    GTK theme .............. no
    Large File ............. yes
    mtdev .................. no
    Networking:
    getaddrinfo .......... yes
    getifaddrs ........... yes
    IPv6 ifname .......... yes
    OpenSSL .............. yes (loading libraries at run-time)
    NIS .................... yes
    OpenGL ................. yes (OpenGL ES 2.x)
    OpenVG ................. no
    PCRE ................... yes (bundled copy)
    pkg-config ............. yes
    PulseAudio ............. no
    QPA backends:
    DirectFB ............. no
    EGLFS ................ yes
    KMS .................. no
    LinuxFB .............. yes
    XCB .................. no
    Session management ..... yes
    SQL drivers:
    DB2 .................. no
    InterBase ............ no
    MySQL ................ no
    OCI .................. no
    ODBC ................. no
    PostgreSQL ........... no
    SQLite 2 ............. no
    SQLite ............... yes (plugin, using bundled copy)
    TDS .................. no
    udev ................... yes
    xkbcommon .............. no
    zlib ................... yes (system library)
    @

    1 Reply Last reply
    0
    • S Offline
      S Offline
      sierdzio
      Moderators
      wrote on 5 Jun 2014, 05:24 last edited by
      #2

      Have you skipped any modules (QtQuick1, QtScript, QtSvg, maybe QtWebKit)? For unknown (to me) reasons, that sometimes causes QtQuick 2 not to be build.

      (Z(:^

      1 Reply Last reply
      0
      • X Offline
        X Offline
        Xooch
        wrote on 5 Jun 2014, 13:11 last edited by
        #3

        I don't believe I did.

        Is there a log of the build results somewhere? I did an out-of-tree build and cannot find one. It would be nice to know if an error had occured during the build, although I assume there were no errors since there was no message at the end of the build...

        I did specifically turn off glib support with "-no-glib", because configure would not complete without that option. From what I read around the 'net, glib doesn't seem like a requirement to get Quick working.

        Here is the configure command line I used, as well as the qmake.conf from the device directory:

        @./configure -debug -opengl es2 -device linux-am335x-g++ -device-option CROSS_COMPILE=/home/steve/ti-sdk-am335x-evm-07.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf- -sysroot /home/steve/ti-sdk-am335x-evm-07.00.00.00/linux-devkit/sysroots/cortexa8hf-vfp-neon-3.8-oe-linux-gnueabi -prefix /home/steve/ti-sdk-am335x-evm-07.00.00.00/targetNFS -no-glib
        @

        Here is the qmake.conf:

        @MAKEFILE_GENERATOR = UNIX
        CONFIG += incremental gdb_dwarf_index
        QMAKE_INCREMENTAL_STYLE = sublib

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

        load(device_config)

        QT_QPA_DEFAULT_PLATFORM = eglfs

        modifications to g++.conf

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

        modifications to linux.conf

        QMAKE_AR = $${CROSS_COMPILE}ar cqs
        QMAKE_OBJCOPY = $${CROSS_COMPILE}objcopy
        QMAKE_NM = $${CROSS_COMPILE}nm -P
        QMAKE_STRIP = $${CROSS_COMPILE}strip

        COMPILER_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=hard

        #modifications to gcc-base.conf
        QMAKE_CFLAGS += $${COMPILER_FLAGS}
        QMAKE_CXXFLAGS += $${COMPILER_FLAGS}
        QMAKE_CXXFLAGS_RELEASE += -O3

        QMAKE_LIBS += -lrt -lpthread -ldl

        Extra stuff (OpenGL, DirectFB, ...)

        QMAKE_INCDIR_EGL = $$[QT_SYSROOT]/usr/include
        QMAKE_LIBDIR_EGL = $$[QT_SYSROOT]/usr/lib
        QMAKE_INCDIR_OPENGL_ES2 = $${QMAKE_INCDIR_EGL}
        QMAKE_LIBDIR_OPENGL_ES2 = $${QMAKE_LIBDIR_EGL}
        QMAKE_INCDIR_OPENVG = $${QMAKE_INCDIR_EGL}
        QMAKE_LIBDIR_OPENVG = $${QMAKE_LIBDIR_EGL}

        QMAKE_LIBS_EGL = -lEGL -lIMGegl -lsrv_um
        QMAKE_LIBS_OPENGL_ES2 = -lGLESv2 $${QMAKE_LIBS_EGL}
        QMAKE_LIBS_OPENVG = -lOpenVG $${QMAKE_LIBS_EGL}

        Sanity check

        deviceSanityCheckCompiler()

        load(qt_config)
        @

        1 Reply Last reply
        0
        • S Offline
          S Offline
          sierdzio
          Moderators
          wrote on 5 Jun 2014, 13:21 last edited by
          #4

          Hm, that looks correct. I do not know how to help, sorry. I guess something has failed along the way, maybe the modules were compiled but not installed properly.

          (Z(:^

          1 Reply Last reply
          0
          • M Offline
            M Offline
            mib383
            wrote on 6 Jun 2014, 06:59 last edited by
            #5

            I solved the same problem on windows.
            Problem occured when i started config and then make from qbase folder.
            When i started it from Src folder - problem dissapeared.

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mib383
              wrote on 6 Jun 2014, 07:00 last edited by
              #6

              See readme file in Src folder

              1 Reply Last reply
              0
              • M Offline
                M Offline
                mib383
                wrote on 6 Jun 2014, 07:01 last edited by
                #7

                Src i mean - is root folder with qt source

                1 Reply Last reply
                0
                • JKSHJ Offline
                  JKSHJ Offline
                  JKSH
                  Moderators
                  wrote on 6 Jun 2014, 13:27 last edited by
                  #8

                  [quote author="mib383" date="1402037969"]I solved the same problem on windows.
                  Problem occured when i started config and then make from qbase folder.
                  When i started it from Src folder - problem dissapeared.[/quote]Yes, you are supposed to build from the root folder, not qtbase.

                  Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

                  1 Reply Last reply
                  0
                  • X Offline
                    X Offline
                    Xooch
                    wrote on 9 Jun 2014, 13:20 last edited by
                    #9

                    In my situation I did build from the root folder, and performed the build out-of-tree. I created a directory, and called configure from that directory, did the make and make install.

                    It does turn out to be an installation problem - the libraries were actually built. For example, I found ./qtdeclarative/lib/libQt5Qml.so in my build tree.

                    When I go to Options | Build & Run, on the Qt Versions tab, I've added the qmake that is in my build directory, but there is a warning "Non-installed -prefix build - for internal development only." What is this warning?

                    Also, when during the build is it trying to find the quick and QML libraries? It's not looking on the target as far as I can tell, so what is telling Creator that these libraries exist (or don't)?

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      sierdzio
                      Moderators
                      wrote on 9 Jun 2014, 13:36 last edited by
                      #10

                      Out-of-source prefixed builds are not working very well when cross-compiling. I recommend doing in-source builds when compiling for ARM and Android.

                      (Z(:^

                      1 Reply Last reply
                      0
                      • X Offline
                        X Offline
                        Xooch
                        wrote on 9 Jun 2014, 18:00 last edited by
                        #11

                        Ok, so I reconfigured and re-built using a fresh source tree, and I configured, make, make install from that source tree. This time I'm pretty sure I got everything installed properly: I added the -extprefix option to configure, which appears to be the real cause of the missing libraries.

                        However, I'm still having the same problem from Creator. The quick and qml libraries are definitely on my target. I've updated my kit to point to the appropriate things, but I still get "unknown module(s) in QT: quick qml", and I still get the yellow "!" on the Qt Versions tab when setting up the kit, with the message "non-installed -prefix build - for internal development only".

                        Any further suggestions? It seems like the "non-installed -prefix build" is probably the error I need fixed next, I believe.

                        For the record, here is my new configure command line:

                        @./configure -debug -opengl es2 -device linux-am335x-g++ -device-option CROSS_COMPILE=/home/steve/ti-sdk-am335x-evm-07.00.00.00/linux-devkit/sysroots/i686-arago-linux/usr/bin/arm-linux-gnueabihf- -sysroot /home/steve/ti-sdk-am335x-evm-07.00.00.00/linux-devkit/sysroots/cortexa8hf-vfp-neon-3.8-oe-linux-gnueabi -prefix /home/steve/ti-sdk-am335x-evm-07.00.00.00/targetNFS -extprefix /home/steve/ti-sdk-am335x-evm-07.00.00.00/targetNFS -no-glib -qpa eglfs -opensource -confirm-license@

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          sierdzio
                          Moderators
                          wrote on 9 Jun 2014, 18:02 last edited by
                          #12

                          Please pay close attention what the configure says when it's finishing: maybe you should not be running "make install" at all.

                          (Z(:^

                          1 Reply Last reply
                          0
                          • X Offline
                            X Offline
                            Xooch
                            wrote on 9 Jun 2014, 18:26 last edited by
                            #13

                            I have to, though - somehow the necessary files need to get into my target filesystem. I did re-run configure to find the message you're talking about (I've seen it, but I can't remember the details), but that message did not appear. Also, I don't think I fit into the category of "must not run make install".

                            Here are the messages printed at the end of configure:

                            NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1.
                            Configure with '-qreal float' to create a build that is binary compatible with 5.1.

                            Qt is now configured for building. Just run 'make'.
                            Once everything is built, you must run 'make install'.
                            Qt will be installed into /home/steve/ti-sdk-am335x-evm-07.00.00.00/targetNFS

                            1 Reply Last reply
                            0
                            • S Offline
                              S Offline
                              sierdzio
                              Moderators
                              wrote on 9 Jun 2014, 18:32 last edited by
                              #14

                              Yeah, you are right. Weird :)

                              (Z(:^

                              1 Reply Last reply
                              0
                              • X Offline
                                X Offline
                                Xooch
                                wrote on 9 Jun 2014, 18:34 last edited by
                                #15

                                Perhaps this might shed some light? I'm not sure though...

                                When setting up the Qt Version in the Options dialog, the paths for Qt are displayed like the image below. It appears most of these paths points to spots in the Qt source tree, not to where the actual installation is.

                                My installation should go to /home/steve/ti-sdk-am335x-evm-07.00.00.00/targetNFS, which is the directory I'm exporting via NFS.

                                !http://i.imgur.com/wvwpHjw.png(Qt kit details)!

                                1 Reply Last reply
                                0
                                • X Offline
                                  X Offline
                                  Xooch
                                  wrote on 9 Jun 2014, 21:09 last edited by
                                  #16

                                  I just reconfigured and re-built (with a fresh source tree), removing the -prefix option (thinking it might be conflicting with -extprefix), but no luck. AAARGH!

                                  1 Reply Last reply
                                  0
                                  • X Offline
                                    X Offline
                                    Xooch
                                    wrote on 10 Jun 2014, 20:10 last edited by
                                    #17

                                    As it turns out, I needed to point Creator to the qmake of the target, not to qtbase/bin/qmake in my build tree.

                                    Which them leads to a new question: How does Creator make use of a binary built for a different architecture?!? It’s definately not running “qmake -query QT_SOME_VAR” on my embedded device!

                                    1 Reply Last reply
                                    0
                                    • B Offline
                                      B Offline
                                      bootchk
                                      wrote on 17 Oct 2014, 13:15 last edited by
                                      #18

                                      Please, what exactly did you do to 'point Creator to the qmake of the target'?

                                      I think Creator is running /usr/bin/qmake, which is not the qmake from the android kit. I suppose I could use a link, but is there another way?

                                      I think Creator uses qmake not only to generate a makefile, but to query locations in the kit. So if it uses /usr/bin/qmake, it doesn't find the quick module (which is not installed on the original Ubuntu installation of Qt 5.2.1) But if it uses ~/Qt/5.3/android/bin/qmake, it would find the quick module.

                                      1 Reply Last reply
                                      0
                                      • W Offline
                                        W Offline
                                        W. Fiderek
                                        wrote on 2 Sept 2015, 08:56 last edited by
                                        #19

                                        Had same issue on lubuntu and Qt 5.2.1.
                                        I removed Qt configuration files from .config folder in my home dir.
                                        rm -r ~.config/QtProject
                                        rm ~.config/QtProject.conf

                                        Reconfigure project again and all works as expected

                                        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