Error while trying to create a static version of Qt



  • ./configure worked
    Now i'm trying to make, but i got this error about GTK.

    @ 1.
    In file included from ../../include/QtGui/private/qgtkstyle_p.h:1,

    1. from kernel/qguiplatformplugin.cpp:63:
    2. ../../include/QtGui/private/../../../src/gui/styles/qgtkstyle_p.h:69: fatal error: gtk/gtk.h: No such file or directory
    3. compilation terminated.
    4. make[1]: *** [.obj/release-static/qguiplatformplugin.o] Error 1
    5. make[1]: Leaving directory `/opt/qtsdk-2010.05/qt/src/gui'
    6. make: *** [sub-gui-make_default-ordered] Error 2@

  • Moderators

    Hi Pufo,

    you should provide some more details.
    What is the operation system?
    Do you try to create a cross-compile version?

    How does your configure command line look like?



  • Hi Pufo,

    did you download the full source zip file or do you use the sources downloaded by SDK?
    Also, as koahnig said: which OS, compiler, etc.
    what were the parameters of configure?
    did you change some other files of Qt?



  • I'm using Linux Ubuntu.
    I have Qt Creator installed, and i'm trying to follow this: http://doc.qt.nokia.com/4.5/deployment-x11.html tutorial to release a static linked version of my application.

    The ./configure part went ok.
    Then i've had the problem i've posted earlier, which i've solved it by putting the absolute path to gtk.h in that header.

    Now, i have another problem.

    @In file included from /usr/include/gtk-2.0/gdk/gdk.h:32,
    from /usr/include/gtk-2.0/gtk/gtk.h:32,
    from ../../include/QtGui/private/../../../src/gui/styles/qgtkstyle_p.h:69,
    from ../../include/QtGui/private/qgtkstyle_p.h:1,
    from kernel/qguiplatformplugin.cpp:63:
    /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30: fatal error: gio/gio.h: No such file or directory
    compilation terminated.
    make[1]: *** [.obj/release-static/qguiplatformplugin.o] Error 1
    make[1]: Leaving directory `/opt/qtsdk-2010.05/qt/src/gui'
    make: *** [sub-gui-make_default-ordered] Error 2
    @

    This gio.h thing ...



  • Looks like it doesn't know where to search for glib and related stuff unless i edit the include statements, which is not nice.


  • Moderators

    Hi Pufo
    it would be good to post the complete configure command as you used.
    If configure runs through does not necessarily mean that all is ok.



  • Also please use the latest SDK. From your paths it look as if you are using 2010.05? You could also try disabling gtk support in Qt if you don't need it for your app(s).



  • I've just used simple "./configure" with no other parameters.
    How do i disable GTK ?



  • @
    ./configure -no-gtkstyle -no-glib
    @



  • [quote author="Pufo" date="1304874586"]I've just used simple "./configure" with no other parameters.
    How do i disable GTK ?[/quote]

    without parameters? then it will not be static! static builds needs at least -static



  • And also to repeat just another time (and you didn't answer the respective question):

    If you compile Qt manually, then please do so with the stand alone framework sources ("Qt download page":http://qt.nokia.com/downloads, go LGPL, Qt: Framework Only on the right side, the introductory paragraph has the links to a zip or a tar.gz).

    Recompiling from the installed SDK is very known to cause problem, please avoid this!



  • Sorry guys, i've used @./configure -static -prefix /path/toQt@

    Is it me or this library thing is harder than programming itself ?


  • Moderators

    [quote author="Volker" date="1304875302"]And also to repeat just another time (and you didn't answer the respective question):

    If you compile Qt manually, then please do so with the stand alone framework sources ("Qt download page":http://qt.nokia.com/downloads, go LGPL, Qt: Framework Only on the right side, the introductory paragraph has the links to a zip or a tar.gz).

    Recompiling from the installed SDK is very known to cause problem, please avoid this![/quote]

    Hi Pufo, recompiling is typically not a major issue. However, you might want to follow Volker's advice.



  • [quote author="Pufo" date="1304880968"]Sorry guys, i've used @./configure -static -prefix /path/toQt@

    Is it me or this library thing is harder than programming itself ?[/quote]

    Static compilation in a Linux/Mac environment should be seamless. I do it regularly without any problems from the source package.



  • Yes ! It worked GREAT using Volker's advice.
    My binary is 14 MB and in ldd the Qt libraries aren't listed anymore.

    Another question:

    What is the best choice to distribuite the software, now that i've compiled it?
    Should i create a .deb pack ?
    If i've compiled on my Ubuntu machine ( 2.6.35-22-generic ) someone with Slackware or another distribution would be able to run it ?



  • A Debian package (.deb) is the most convenient for all the users with native .deb support. As far as I know there are converters for the various package formats (deb, rpm, dunno what Slackware uses nowadays).

    I personally would go with a .deb, maybe a .rpm and a zip file as fallback option.



  • I've built a static release 10 days ago, but i don't remember how i did it.
    I remember i've followed this tutorial: http://doc.qt.nokia.com/latest/deployment-x11.html
    Now, if i run: qmake -config release i get the qmake help


  • Moderators

    Hi Pufo,
    @
    qmake -config release
    @
    is for building your application after you have built your static libs.

    If you like to build the static libs you probably should start with a fresh copy of the source. Then you need to start with
    @
    ./configure -static -prefix /path/to/Qt <other parameters>
    @



  • I've already build my static libs.
    How to i use them ?
    I've used them once, 10 days ago, but i don't know how.
    qmake -config release - works if i run it from sources directory ( earlier i was in build folder )

    I've also put CONFIG +=static in my .pro file.
    All this happens on Linux.

    Also, i'm trying to compile on Windows.
    Same story there too.


  • Moderators

    In which directory do you have Qt installed?



  • I've remembered and found that i've downloaded the framework separately, and built it !
    I've added to the PATH the path of the static compiled release, and it worked !

    For Windows i've done this: http://developer.qt.nokia.com/wiki/How_to_build_a_static_Qt_version_for_Windows_with_gcc


  • Moderators

    My guess was that you somehow did not have the path set.
    However, it is good to know that your issue has been solved.



  • If you rebuild from the sources, it is usually no problem. Rebuilding in a folder, where already some stuf is build is sometimes not working...


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.