How to set the QT_DLL macro?

Ralf Habacker ralf.habacker at freenet.de
Fri Apr 22 17:16:51 CEST 2005


On Friday 22 April 2005 13:32, Angus Leeming wrote:
> Angus Leeming wrote:
> >> On cygwin I'm using the following switch, which may help to prevet seg
> >> faults. It requires a relink of the qt-3.dll
> >> QMAKE_LFLAGS            =
> >> -Wl,--script,$(QTDIR)/mkspecs/cygwin-g++/i386pe.x-no-rdata
> >
> > Now that is very, very interesting. I'll try it out. (Am I correct to say
> > that only the dll needs to be re-linked?
>
> Hi, Ralf.
>
> I have some good news and some bad news to report.
>
> a cross-compiled LyX/Win 1.3.x runs beautifully on Windows, but only when I
> use a natively compiled qt3.dll. If I try and use the cross-compiled
> qt3.dll, then I get the dreaded popup "The application failed to
> initialise itself correctly".

> This is true both with a qt3.dll using the 'standard' linker options
>
> QMAKE_LFLAGS            = -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import
> -Wl,-enable-runtime-pseudo-reloc
>
> and when I add your script:
>
> QMAKE_LFLAGS            =
> -Wl,--script,$(QTDIR)/mkspecs/cygwin-g++/i386pe.x-no-rdata
> -Wl,-enable-stdcall-fixup -Wl,-enable-auto-import
> -Wl,-enable-runtime-pseudo-reloc

It is interesting that the problem is really the dll and not in the exe. 
Seems that there is a seg fault in the dll startup code. Very difficult to 
catch, because it is not clear from which part this comes. It may be a mingw 
provided static lib or the mingw runtime library. (Do have used the mingw 
runtime dll from the cross compile package ?) If you have time you can try to 
profile the application with depends http://www.dependencywalker.com/. It may 
give some hints about where the seg fault happens. 

Regards
 Ralf 




More information about the kde-cygwin mailing list