Microsoft KB Archive/49526

= PRB: L2029: Unresolved External _main in crt0.asm =

Article ID: 49526

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft FORTRAN Compiler 4.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1
 * Microsoft FORTRAN PowerStation 1.0 Standard Edition
 * Microsoft Fortran PowerStation 1.0a for MS-DOS
 * Microsoft FORTRAN PowerStation 32
 * Microsoft FORTRAN PowerStation 32
 * Microsoft FORTRAN Compiler 4.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1

-



This article was previously published under Q49526



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 &quot;_main&quot;

error LNK2120: 1 Undefined Externals

-or-

libc.lib(CRT0.OBJ) : warning LNK4016: unresolved external symbol &quot;_main&quot;

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:


 * Verify that the lines of the FORTRAN source code begin in column seven and that the program has an END statement.
 * Specify the /4Yf compiler option switch to enable free-form source code.
 * Verify that the source file containing the main program is being compiled and linked in.



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 query words: 1.00 4.00 4.10 5.00 5.10 F2830

Keywords: kberrmsg kblangfortran KB49526

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.