PRB: L2029: Unresolved External _main in crt0.asm

ID: Q49526

4.10 5.00 5.10 1.00 1.00a | 4.10 5.00 5.10 | 1.00 4.00

MS-DOS                    | OS/2           | WINDOWS NT
  kbprb

The information in this article applies to:

SYMPTOMS

An attempt to link an application fails and Microsoft LINK generates the following message:

   (dos\crt0.asm) : error L2029: '_main' unresolved external

-or-

   libc.lib(CRT0.OBJ) : warning LNK4516: unresolved external symbol "_main"
   error LNK2120: 1 Undefined Externals

-or-

   libc.lib(CRT0.OBJ) : warning LNK4016: unresolved external symbol "_main"
   error LNK1120: 1 unresolved externals

For FORTRAN PowerStation 32, version 4.0:

   error FOR1768: missing END statement or missing program unit
   (possibly free-form source in fixed-form file)

CAUSE

The compiler or the linker cannot determine the entry point for the program.

RESOLUTION

To address this problem, perform one of the following three steps:

MORE INFORMATION

The following code example demonstrates this problem. Each line in the example begins in column one. The compiler interprets each line to be a comment and does not issue an error. However, because Microsoft LINK cannot find the END statement, it cannot identify the main program and issues an L2029 error for the unresolved external _main. Compiling this application with the /4Yf option switch corrects this problem.

Sample Code

C Compile options needed: See above

INTEGER*4 I I = 5 WRITE(*, *) I END

Additional reference words: 1.00 4.00 4.10 5.00 5.10 F2830

KBCategory:   kbprb
KBSubcategory: FLIss
Keywords          : kberrmsg kbLangFortran 
Version           : 4.10 5.00 5.10 1.00 1.00a | 4.10
Platform          : MS-DOS NT OS/2 WINDOWS

Last Reviewed: May 23, 1998