KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q43647: Why Syntax Errors Might Not Display While Compiling in M

Article: Q43647
Product(s): See article
Version(s): 1.00   | 1.00
Operating System(s): MS-DOS | OS/2
Keyword(s): ENDUSER | | mspl13_basic
Last Modified: 1-MAY-1989

Question:

While inside the Microsoft Editor, I compiled a program that I know
contained syntax errors. The message "Compilation Complete - return
code is x" (where "x" is an integer value) appeared, signifying that
an error had occurred while compiling.

I pressed SHIFT+F3 to display those errors and the message "No more
compilation messages" was displayed on the bottom of the screen. Why
aren't my program's error messages displayed inside the editor?

Response:

You see error messages only if the compiler or linker runs correctly
and passes the error messages in the correct format to the editor; if
the compiler itself fails, you will not see any messages.

Because M spawns the compiler, you could be running out of file
handles. You know that the system has run out file handles if the
M.MSG file is not created. Setting files=20 in your CONFIG.SYS file
should correct the problem.

Other possible causes for not getting error messages are as follows:

1. You could be running out of memory. You can check this by shelling
   out of M.EXE (with SHIFT+F9) and issuing the DOS CHKDSK command to
   display the available memory.

2. The compiler might not be able to find the specified file.
   Consider the following example, in which you invoke M.EXE as
   follows:

      C:\> M c:\c5\source\test.c

   If you compile the program with ARG COMPILE, the information line
   displays the following:

      CL /c /Zep /D LINT_ARGS test.c.

   The compiler will not find TEST.C in the current directory, so an
   error is returned.

   For more information, query on the following phrases:

      Microsoft Editor
      full path

3. The EXTMAKE switches might have been incorrectly modified in the
   TOOLS.INI file, as in the following example:

      EXTMAKE:bas BC /Zi /O %s

   The line above is incorrect because it is missing a semicolon (;)
   at the end. The command line following the extension must be complete.
   Both the Microsoft BASIC Compiler and MASM will prompt you for
   additional information if a semicolon is not at the end of the line.

4. Make sure the options used are valid for the compiler. In the
   following example, the option /Fa is an invalid option for the
   QCL.EXE compiler:

      QCL /Fa filename.c

5. The compiler must be in the current path. If the compiler fails to
   execute, due to some problem external to the editor, M will
   display the ambiguous message "No more compilation messages."

   A good way to check the validity of the Compile command and to check
   for the presence of the compiler is to type in the compile line with
   all of the options directly from DOS.

THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Copyright Microsoft Corporation 1986-2002.