Subject: RE: Petzold Example
From: [email-masked] (Colin Peters)

18 Nov 1997 20:43:07 -0800
Message-ID: <01BCF4E6.C584C740.cygnus.gnu-win32@gbird0>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
To: "'GBradfor'" <[email-masked]>
Cc: "'GNU-Win32'" <[email-masked]>

GBradfor wrote:
>     the following two-step compile:
>     
>        gcc -c -DSTRICT -o hellowin.obj hellowin.c
>        ld -o hellowin.exe hellowin.obj --subsystem windows -luser32 /
>                -lgdi32 -L$(GCC_WIN_LIB)
>     
>     After copying mmsystem.h down from Microsoft's web, Everything 
>     compiled and linked.  I do get this warning, however:
>     
>        ld: warning: cannot find entry symbol WinMainCRTStartup; defaulting
>                to 00401000
>     
>     Using the "-e mainCRTStartup" as suggested in another post doesn't 
>     help; the linker can't find that symbol, either.
>     
>     When I try to run the resulting executable, I get the following error 
>     message:
>     
>        A required .DLL file, j.DLL, was not found.

This message indicates, usually, that the list of DLLs to import is corrupt.
And this happens when the dll import list is not properly terminated by
a little piece of code in crt0.o. (NOTE: crt0.o is also the place where the
entry point mainCRTStartup is defined, which is another hint.)

Basically the problem is that you are running ld directly. Generally it is
a better idea to let gcc call the linker by running gcc as if it *was* the
linker. That way all kinds of default options get set, including the linking
of the startup code crt0.o (which you need).

Change this:
>        ld -o hellowin.exe hellowin.obj --subsystem windows -luser32 /
>                -lgdi32 -L$(GCC_WIN_LIB)

to:
    gcc -o hellowin.exe hellowin.o -mwindows

or:
    gcc -o hellowin.exe hellowin.o -Wl,--subsystem,windows -luser32 -lgdi32

And things should work, or at least your bugs will change :)

Good luck,
Colin.

-- Colin Peters - Saga Univ. Dept. of Information Science
-- [email-masked] - finger for PGP public key
-- http://www.fu.is.saga-u.ac.jp/~colin/index.html
-- http://www.geocities.com/Tokyo/Towers/6162/

-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".