Microsoft KB Archive/27608

PRB: Unresolved External Error in Mixed Language Programs PSS ID Number: Q27608 Article last modified on 02-11-1992 PSS database name: S_QuickC

1.00 1.01 2.00 2.01 2.50 2.51

MS-DOS

Summary:

SYMPTOMS An unresolved external error is received when linking in assembly routines using QuickC. The error is not received when linking separately outside of the QuickC environment.

CAUSE You are getting an unresolved external because the Macro Assembler converts all symbols to uppercase by default and QuickC in-memory uses the /NOI switch. If you link separately outside of the QuickC environment, the linker does not automatically use the /NOI switch.

Another reason for getting an unresolved external is if the wrong linker is being used. To verify that the correct linker is being used, choose SHELL from the File menu, then run LINK.EXE.

RESOLUTION

There are several ways to solve the error, as follows:


 * 1) If you have the source code, reassemble the code with the /ML (makes names case sensitive) or the /MX (makes public and external names case sensitive) switch.
 * 2) If you do not have the source code, change the name of the symbol in your C source into an uppercase symbol.
 * 3) Compile your program to create an object file, then link all .OBJ files including the assembly modules outside of the QuickC environment.

Additional reference words: 2.00 2.01 2.50 2.51

Copyright Microsoft Corporation 1992.