[texworks] Building TeXworks on Windows using MinGW

Alain Delmotte esperanto at swing.be
Sat Jun 13 16:28:58 CEST 2009

Hello! again!!

Stefan Löffler a écrit :
>>> 4) What path does "qmake --version" give you? Is it the correct path to
>>> your MinGW KDE libs (if it's not, you probably have to adjust your PATH
>>> and/or KDELIBS environmental variables as documented on the KDE on
>>> Windows page which is linked from the wiki).
>> QMake version 2.01a
>> Using Qt version 4.4.3 C:/Programmes/KDE/bin/../lib
>> There it is (?) it should be KDE-mingw!
>> So I renamed "qmake" into "min-qmake" and I could use "make", but with
>> errors, see attached file for the output of compilation.
> Yep, there it is. I was expecting something like that, happened to me,
> too ;).
> What you did is a working solution, but not really optimal. The proper
> way of doing it would be following step 4 (and possibly 5) of
> http://techbase.kde.org/Projects/KDE_on_Windows/Installation#Summary_of_Steps
> which will most likely be pointing towards the msvc version of the KDE
> libs (if you followed the wiki instructions when setting up msvc).

OK I modified KDEDIRS and did suppress the part which was pointing to 
KDE msvc in the path.
qmake is now the mingw one

> As for the problem with compiling: Googling reveals that this is also a
> well-known problem and apparently a bug in the Qt include files. There
> is a workaround posted at http://www.itworld2.com/qtcompilation.aspx
> (scroll to the very bottom of the page) which unfortunately involves
> hacking the source code again (I hoped to get rid of that ;)).

There is no Qt\4.4.3\src directory, but I did find qatomic_windows.h in 
\include\Qt and \include\Qtcore
In these files there is no:
/*#if !(defined Q_CC_BOR) || (__BORLANDC__ < 0x560)   
extern "C" {
__declspec(dllimport) long __stdcall InterlockedCompareExchange(long *, 
long, long);   
__declspec(dllimport) long __stdcall InterlockedIncrement(long *);   
__declspec(dllimport) long __stdcall InterlockedDecrement(long *);
__declspec(dllimport) long __stdcall InterlockedExchange(long *, long);   
__declspec(dllimport) long __stdcall InterlockedExchangeAdd(long *, 
#else */
extern "C" {   
__declspec(dllimport) long __stdcall InterlockedCompareExchange(long 
volatile*, long, long);   
__declspec(dllimport) long __stdcall InterlockedIncrement(long 
__declspec(dllimport) long __stdcall InterlockedDecrement(long 
__declspec(dllimport) long __stdcall InterlockedExchange(long volatile*, 
__declspec(dllimport) long __stdcall InterlockedExchangeAdd(long 
volatile*, long);   
// #endif

but only the first part (here the commented part); so I modified the 
existing part to have "long volatile*"
I did this in both files !!!!

Now compilation is different, it goes long before to end with errors.
In the attached files you'll find what is output in the redirection file 
(compil.log) and what is not redirected but goes immediately to the 
console (mingw32-make_compilation.log)


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: mingw32-make_compilation.log
URL: <http://tug.org/pipermail/texworks/attachments/20090613/32eb563f/attachment.pl>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: compil.log
URL: <http://tug.org/pipermail/texworks/attachments/20090613/32eb563f/attachment-0001.pl>

More information about the texworks mailing list