I'm having problems where windres isn't honouring system headers. For example I have in a local included file ("resource.h"):
#define IDD_SHUTDOWN 100
#define IDC_STATIC 101
#define IDC_LOGO 200
#define IDC_METHOD 201
#define IDB_LOGO 1000
I'm getting syntax errors from windres because SS_BITMAP isn't defined, despite it being in winuser.h. I've tried adding '-I<MinGW64 system include dir>' but it didn't help.
What is your host system?
Can you use the -v option and post the entire output, including the full command line that you are using?
Here's what I have:
[ironhead] 05/13/08 21:06:16.73
[ironhead] 05/13/08 21:06:35.95
C:\source\emerge\trunk\Source\emergeLib>mingw32-make MINGW64=1 clean
del ..\.objs64\Release\emergeLib\*.o ..\.objs64\Release\emergeLib\*.res
[ironhead] 05/13/08 21:07:07.12
x86_64-pc-mingw32-g++ -Wall -pedantic -DEMERGELIB_EXPORTS -mno-cygwin -frtti -fexceptions -O2 -c mai
n.cpp -o ../.objs64/Release/emergeLib/main.o
main.cpp:79:1: warning: "INTERFACE" redefined
In file included from main.cpp:39:
3:1: warning: this is the location of the previous definition
main.cpp: In function 'WINBOOL MinimizeAll(HWND__*, LPARAM)':
main.cpp:2159: warning: statement has no effect
x86_64-pc-mingw32-g++ -Wall -pedantic -DEMERGELIB_EXPORTS -mno-cygwin -frtti -fexceptions -O2 -c Shu
tdown.cpp -o ../.objs64/Release/emergeLib/Shutdown.o
x86_64-pc-mingw32-windres -O COFF -i emergeLib.rc -o ../.objs64/Release/emergeLib/emergeLib.res
x86_64-pc-mingw32-windres: emergeLib.rc:65: syntax error
mingw32-make: *** [../.objs64/Release/emergeLib/emergeLib.res] Error 1
[ironhead] 05/13/08 21:07:39.89
GNU windres (GNU Binutils) 22.214.171.12480420
Copyright 2007 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
[ironhead] 05/13/08 21:10:33.54
Using `x86_64-pc-mingw32-gcc -E -xc -DRC_INVOKED -'
Using popen to read preprocessor output
Line 65 of emergeLib.rc:
If I define SS_BITMAP in resource.h, like I mentioned above, the error goes away. It just seems that <winuser.h> isn't being found (i.e. the system include directories aren't being searched).
I solved the issue by adding:
to my resource files.
After all these years the 'windres' not working problem is still there! That's a real shame and about time to fix it for good. Cheers!