Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Behind the Scenes
  3. Wiki Discussion
  4. Qt5 development primer
Forum Updated to NodeBB v4.3 + New Features

Qt5 development primer

Scheduled Pinned Locked Moved Wiki Discussion
166 Posts 72 Posters 201.4k 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.
  • kkoehneK Offline
    kkoehneK Offline
    kkoehne
    Moderators
    wrote on last edited by
    #2

    Hi, I took the liberty to link to this thread from the wiki page :) I'd like to suggest a couple of changes, but on the other side do not want to start an edit war ...

    Don't advocate the use of "./qtrepotools/bin/qt5_tool -p" . It'll check out the master branches of every repo, which more likely than not break compilation . People who really want to live on the bleeding edge will find out how to achieve that ... There should be no further steps necessary (no git remote rm gerrit, no special webkit/v8 handling). It's IMO a high priority bug if that doesn't succeed, so don't advocate workarounds!

    Along the same line, a way to update Qt5 repo isn't qt5_tool -p, but git pull && git submodule update --recursive!

    Director R&D, The Qt Company

    1 Reply Last reply
    0
    • Z Offline
      Z Offline
      ZapB
      wrote on last edited by
      #3

      Hi! Please feel free to edit the wiki article as to the latest recommendations. I put the basic instructions up a while ago now so I am not surprised if much has changed. The usage of qt5_tool -p came from a troll on #qt-labs at the time.

      A quick question, if we should not use qt5_tool -p then why does it exist?

      Others have added the gerrit-related stuff and other bits and pieces.

      Could you add a brief not on how to live on the bleeding edge then please? This is supposed to be an article to help people do so so that they can contribute back under Open Governance.

      Many thanks for any input you can give.

      Nokia Certified Qt Specialist
      Interested in hearing about Qt related work

      1 Reply Last reply
      0
      • kkoehneK Offline
        kkoehneK Offline
        kkoehne
        Moderators
        wrote on last edited by
        #4

        Okay. The thing is that now Qt is modularized, every module moves at it's own speed, but there are of course dependencies. E.g. a recent change in qtbase might break qtdeclarative and so on ... There's no way we can ensure that all master branches at a time work with each other (also due to the CI system). Therefore the qt5.git repo contains a list of 'known' SHA's from every module that are known to work together. It's of course not bleeding edge, but a good baseline to start with.

        I'll do the changes now.

        Director R&D, The Qt Company

        1 Reply Last reply
        0
        • Z Offline
          Z Offline
          ZapB
          wrote on last edited by
          #5

          Hi. Thanks for the explanation. I may be back with more questions after I read the updated article. ;-)

          Thank you for taking the time to do this. The hope is that it will lower the entry barrier for external contributors.

          Nokia Certified Qt Specialist
          Interested in hearing about Qt related work

          1 Reply Last reply
          0
          • kkoehneK Offline
            kkoehneK Offline
            kkoehne
            Moderators
            wrote on last edited by
            #6

            Okay, done. I was bold and removed some of the more obscure hacks that IMO aren't needed any more.

            Director R&D, The Qt Company

            1 Reply Last reply
            0
            • Z Offline
              Z Offline
              ZapB
              wrote on last edited by
              #7

              Looks good. Many thanks once again.

              Nokia Certified Qt Specialist
              Interested in hearing about Qt related work

              1 Reply Last reply
              0
              • A Offline
                A Offline
                andre
                wrote on last edited by
                #8

                Thanks, looks like a very useful resource!

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  arichardson
                  wrote on last edited by
                  #9

                  I have a problem compiling modules other than qtbase even when following these instructions
                  When running make I always get

                  Project ERROR: Cannot load qmodule.pri!

                  when trying to build qtsvg and qtxmlpatterns.

                  Could the problem be that I am building in a different directory? Source is in ~/devel/qt5 and build dir is ~/devel/build/qt5

                  1 Reply Last reply
                  0
                  • Z Offline
                    Z Offline
                    ZapB
                    wrote on last edited by
                    #10

                    Quite possibly caused by using a shadow build. Try an in-tree build as this is much better tested at present.

                    Nokia Certified Qt Specialist
                    Interested in hearing about Qt related work

                    1 Reply Last reply
                    0
                    • A Offline
                      A Offline
                      arichardson
                      wrote on last edited by
                      #11

                      I'm afraid I still get same issue with an in-tree build. Maybe I should try with a clean checkout.

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        arichardson
                        wrote on last edited by
                        #12

                        It seems to work now with a clean checkout, however I get following compilation error:

                        qsvgiconengine.cpp:47:26: fatal error: qsvgrenderer.h: File not found.
                        compilation terminated.

                        when compiling qtsvg.

                        1 Reply Last reply
                        0
                        • kkoehneK Offline
                          kkoehneK Offline
                          kkoehne
                          Moderators
                          wrote on last edited by
                          #13

                          Do you have a qsvgrenderer.h in qt5/qtsvg/include/QtSvG ? If not you can run "syncqt" in your qtsvg root directory.

                          Director R&D, The Qt Company

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            arichardson
                            wrote on last edited by
                            #14

                            I did a new clean build and for some reason it worked now. Thank you for your help.

                            1 Reply Last reply
                            0
                            • J Offline
                              J Offline
                              jmfairlie
                              wrote on last edited by
                              #15

                              On mac 10.6.8, I have problems building this. The linker complains about an nonexistent "OpenGl" library. After replacing with "OpenGL" (notice capital L) in the offending files* this issue resolves.
                              Unfortunately QtQuick2.0 examples don't work. For some reason importing folders from QML files is not working as it should. qmlscene doesnt recognize the imported folders (despite the fact that they are there at the same level as the invoking qml file). I keep getting:

                              .../somefile.qml: "SomeFolder": No such directory

                              (*) among them:
                              ./qtbase/src/platformsupport/cglconvenience/cglconvenience.pri: LIBS += -framework Cocoa -framework OpenGl

                              1 Reply Last reply
                              0
                              • kkoehneK Offline
                                kkoehneK Offline
                                kkoehne
                                Moderators
                                wrote on last edited by
                                #16

                                @jmfairlie: I'm not working on Mac OS X, sorry. You should raise your problems (after verifying that the problem is still there in latest master branch of e.g. qtbase) on IRC/freenode, #qt-labs channel . Or you raise it on qt5-feedback@qt.nokia.com .

                                Director R&D, The Qt Company

                                1 Reply Last reply
                                0
                                • J Offline
                                  J Offline
                                  jmfairlie
                                  wrote on last edited by
                                  #17

                                  Now I tried with Ubuntu 11.04 with an ATI gpu (might be relevant) and linker isn't able to find GL libraries. Indeed, for some reason, there is no /usr/lib/libGL.so in my machine (not sure if this is normal) but only in /usr/lib/mesa and /usr/lib/fglrx.

                                  If I add "-opengl desktop" to configure then it shows the message:

                                  The OpenGL functionality test failed!
                                  You might need to modify the include and library search paths by editing
                                  QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in
                                  .../qt5/qtbase/mkspecs/linux-g++.

                                  If I follow the suggestion and add those lines to qtbase/mkspecs/linux-g++/qmake.conf :

                                  QMAKE_LIBDIR_OPENGL = /usr/lib/fglrx
                                  QMAKE_INCDIR_OPENGL = /usr/include/GL
                                  QMAKE_LIBS_OPENGL = -lGL

                                  It doesn't make a difference and linker is still unable to find the GL libraries, (I guess those macros are not being used)

                                  However if I just add a symlink to any of the GL libs to /usr/lib it finally finds them.

                                  Unfortunately, QtQuick2.0 examples (what I'm interested in) don't work either, this time qmlscene SEGFAULTS in a seemingly unrelated call ... I guess I'll need to wait until a more stable version comes out.

                                  1 Reply Last reply
                                  0
                                  • kkoehneK Offline
                                    kkoehneK Offline
                                    kkoehne
                                    Moderators
                                    wrote on last edited by
                                    #18

                                    Ubuntu 11.04 is used heavily in the development teams, so this should really work out of the box, without any environment variable tinkering. The libgl1-mesa-dev should include the /usr/lib/libGL.so file, try installing this package. (Btw, you can find out which package provides which file by using the "apt-get file search" command).

                                    For reference, this is the output "configure -nokia-developer -nomake examples -nomake demos -nomake tests" gives me on an Ubuntu 11.04:

                                    @
                                    Build type: linux-g++
                                    Architecture: i386
                                    Host architecture: i386
                                    Platform notes:

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

                                    Build .................. libs
                                    Configuration .......... debug shared dll qpa largefile stl precompile_header mmx 3dnow sse sse2 sse3 ssse3 sse4_1 sse4_2 avx minimal-config small-config medium-config large-config full-config fontconfig xlib xcb-xlib phonon-backend accessibility opengl qpa reduce_exports clock-gettime clock-monotonic mremap getaddrinfo ipv6ifname getifaddrs inotify system-jpeg system-mng system-png png system-tiff system-freetype system-zlib nis cups glib gstreamer dbus openssl xcb alsa pulseaudio concurrent audio-backend svg v8 debug private_tests
                                    Debug .................. yes
                                    Qt 3 compatibility ..... no
                                    QtDBus module .......... yes (run-time)
                                    QtConcurrent code ...... yes
                                    QtGui module ........... yes
                                    QtScript module ........ yes
                                    QtScriptTools module ... yes
                                    QtXmlPatterns module ... yes
                                    Phonon module .......... yes
                                    Multimedia module ...... auto
                                    SVG module ............. yes
                                    WebKit module .......... yes
                                    JavaScriptCore JIT ..... To be decided by JavaScriptCore
                                    V8 module .............. yes
                                    Declarative module ..... yes
                                    Declarative debugging ...yes
                                    Location module ........ no
                                    Support for S60 ........ no
                                    Symbian DEF files ...... no
                                    STL support ............ yes
                                    PCH support ............ yes
                                    MMX/3DNOW/SSE/SSE2/SSE3. yes/yes/yes/yes/yes
                                    SSSE3/SSE4.1/SSE4.2..... yes/yes/yes
                                    AVX..................... yes
                                    IPv6 ifname support .... yes
                                    getaddrinfo support .... yes
                                    getifaddrs support ..... yes
                                    Accessibility .......... yes
                                    NIS support ............ yes
                                    CUPS support ........... yes
                                    Iconv support .......... no
                                    Glib support ........... yes
                                    GStreamer support ...... yes
                                    PulseAudio support ..... yes
                                    Large File support ..... yes
                                    GIF support ............ plugin
                                    TIFF support ........... plugin (system)
                                    JPEG support ........... plugin (system)
                                    PNG support ............ yes (system)
                                    MNG support ............ plugin (system)
                                    zlib support ........... system
                                    Session management ..... auto
                                    OpenGL support ......... yes (Desktop OpenGL)
                                    OpenVG support ......... no
                                    MySQL support .......... plugin
                                    SQLite support ......... plugin (qt)
                                    OpenSSL support ........ yes (run-time)
                                    Alsa support ........... yes
                                    ICD support ............ no
                                    libICU support ......... no
                                    Xcb support ............ limited (old version)
                                    @

                                    Director R&D, The Qt Company

                                    1 Reply Last reply
                                    0
                                    • J Offline
                                      J Offline
                                      jmfairlie
                                      wrote on last edited by
                                      #19

                                      this is what I got, I'll check on Monday if getting rid of the differences makes any difference:
                                      @
                                      --- a/jean
                                      +++ b/kkoehne
                                      -QtDBus module .......... no
                                      +QtDBus module .......... yes (run-time)
                                      -Phonon module .......... no
                                      +Phonon module .......... yes
                                      -CUPS support ........... no
                                      +CUPS support ........... yes
                                      -GStreamer support ...... no
                                      -PulseAudio support ..... no
                                      +GStreamer support ...... yes
                                      +PulseAudio support ..... yes
                                      -MNG support ............ plugin (qt)
                                      +MNG support ............ plugin (system)
                                      +MySQL support .......... plugin
                                      -OpenSSL support ........ no
                                      -Alsa support ........... no
                                      +OpenSSL support ........ yes (run-time)
                                      +Alsa support ........... yes
                                      @

                                      1 Reply Last reply
                                      0
                                      • J Offline
                                        J Offline
                                        jmfairlie
                                        wrote on last edited by
                                        #20

                                        pulled current latest version:

                                        commit 0a0d66efceb64bcacffbf733053834829c657df7
                                        Date: Wed Oct 19 07:38:37 2011 +1000

                                        and this time qmlscene spit some more info after segfault:

                                        "Cannot create platform GL context, none of GLX, EGL, DRI2 is enabled"

                                        This message directed me to:
                                        http://comments.gmane.org/gmane.comp.lib.qt.qml/3060

                                        which suggests to install libx11-xcb-dev. Indeed I didn't have it, so I installed, cleaned and rebuilt, and now it works.

                                        If this package is required for qtdeclarative to work properly shouldn't configure notice it and mention it somehow?
                                        Anyhow, Just added this info to the wiki page.

                                        1 Reply Last reply
                                        0
                                        • Q Offline
                                          Q Offline
                                          qtd1d1
                                          wrote on last edited by
                                          #21

                                          The installation was successful, but when I try to compile my own application I get the following error:
                                          QDeclarativeView: No such file or directory

                                          Just read the windows needs python for QDeclarative. What packages do I need for Linux (Ubuntu 10.04) ?

                                          Does anyone had similar problems?

                                          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