Results 1 to 18 of 18

Thread: Configure Qt Creator for switching between dynamic and static linkage

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #16
    Join Date
    Nov 2009
    Location
    Greece
    Posts
    15
    Thanks
    1
    Qt products
    Qt4
    Platforms
    Unix/X11 Windows

    Default Re: Configure Qt Creator for switching between dynamic and static linkage

    Quote Originally Posted by wysota View Post
    So copy that library to a place where the linker can find it.
    No copy is necessary, the problem with the libgcc_s_dw2-1.dll dependency in the projects can be resolved by simply adding the line:

    QMAKE_LFLAGS += -static-libgcc
    in the respective .pro files.


    As for the problem with qmake.exe not running correctly from a standard command prompt (and thus Qt Creator not being able to correctly locate the static Qt installation), I managed to have configure build a completely static version of QMake, by editing the files Makefile.win32, Makefile.win32-g++ and Makefile.win32-g++-sh (didn't know exactly which of the 3 would be actually used when configure builds QMake) inside the \qmake subdirectory:

    Quote Originally Posted by C:\Qt\2010.01-Static\qmake\Makefile.win32*
    LFLAGS = -static-libgcc

    Now, one step remained for making the tweaking of .pro files unnecessary: Editing \mkspecs\win32-g++\qmake.conf to add:

    Quote Originally Posted by C:\Qt\2010.01-Static\mkspecs\win32-g++\qmake.conf
    QMAKE_LFLAGS = -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc

    I verified by, yet again, starting from scratch with a freshly extracted source tarball, making the aforementioned changes and building Qt. The results:

    1. Qt Creator picks up correctly the static Qt installation from its version management panel
    2. You can switch between Qt Versions being used for the building of a project, without the need to manually tweak the .pro file or arbitrarily copy files inside the new Qt installation's directory. The static executable produced has no external Qt or MinGW dependencies whatsoever.


    After all the above, may I propose that an addition be made to the Wiki article, incorporating the 2 changes I mentioned and by doing so, providing a clean, out-of-the-box solution? It seems that the introduction of GCC 4.4 in the most recent versions of Qt created the extra dependency upon libgcc_s_dw2-1.dll and the article in its current form deals only with the mingwm10.dll dependency (if only I had arrived to this conclusion earlier!). I will do it myself, but since I'm new here, only after a respectable member of the community verifies my findings and gives the Go signal.


    wysota, thanks for the hints, they were really helpful to get to the bottom of this!
    Last edited by parsifal; 26th January 2010 at 00:49.

Similar Threads

  1. QCalendarWidget and dynamic language switching
    By tora in forum Qt Programming
    Replies: 4
    Last Post: 23rd September 2009, 12:06
  2. Static vs. Dynamic
    By hosseinyounesi in forum Qt Programming
    Replies: 2
    Last Post: 24th July 2009, 11:21
  3. Replies: 3
    Last Post: 5th May 2009, 15:46
  4. Dynamic Language Switching
    By Salazaar in forum Newbie
    Replies: 7
    Last Post: 29th June 2007, 12:00
  5. Switching static to dynamic ui loading
    By s_a_white in forum Newbie
    Replies: 4
    Last Post: 26th June 2006, 15:57

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Digia, Qt and their respective logos are trademarks of Digia Plc in Finland and/or other countries worldwide.