This is the mail archive of the
mailing list for the Cygwin project.
Re: Can't link .res file (from windres) using i686-pc-mingw32-g++
- From: Mark Geisert <mark at maxrnd dot com>
- To: cygwin at cygwin dot com
- Date: Wed, 24 Feb 2016 20:29:48 -0800
- Subject: Re: Can't link .res file (from windres) using i686-pc-mingw32-g++
- Authentication-results: sourceware.org; auth=none
- References: <CAK-n8j6Uq2c-a_Vz1nWq3aZSH6L8yzq5xh3ipOPUqJ+yjPAaNw at mail dot gmail dot com>
Jim Reisert AD1C wrote:
I have a 64-bit Cygwin environment. I'm trying to compile a 32-bit
(target) Windows program using i686-pc-mingw32-g++
# i686-pc-mingw32-g++ -g -Wall -Iinclude -I../../library/include -c
-o NPOTAdlg.o NPOTAdlg.cpp
# windres -Iinclude res/NPOTAdlg.rc -O coff -o res/NPOTAdlg.res
# i686-pc-mingw32-g++ -s -mwindows -static-libgcc -static-libstdc++
-lwininet NPOTA.o NPOTAdlg.o res/NPOTAdlg.res ../../library/library.a
/usr/i686-pc-mingw32/sys-root/mingw/lib/libwininet.a -o NPOTA
But I get this error on the link (last) step:
res/NPOTAdlg.res: file not recognized: File format not recognized
This program is a clone of another program I wrote a couple of years
ago (I wanted to re-use the Windows framework I had developed).
However, at that time, I was using 32-bit Cygwin, not 64-bit Cygwin.
Is there a work-around for this, other than re-creating a 32-bit
Just a guess: your 64-bit windres is generating a 64-bit .res file that the
32-bit g++ can't grok. Look at 'windres -h'. There's a "-F" == "--target" flag
that can specify a target type. I would try adding "-F pe-i386" after the "-O
coff" on your command. If windres doesn't accept both -O and -F, try leaving
off the "-O coff" and just specify the -F flag and value. Good luck.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple