Lcc-win32 command line options

Option

Meaning

-A

All warnings will be active.

-ansic

Disallow the language extensions of lcc-win32: operator overloading and references will not be accepted. Only the standard C99 syntax will be used.

-C Keep comments in the preprocessed output.

You should be prepared for side effects when using -C; it causes the preprocessor to treat comments as tokens in their own right. For example, macro redefinitions that were trivial when comments were replaced by a single space might become significant when comments are retained. Also, comments appearing at the start of what would be a directive line have the effect of turning that line into an ordinary source line, since the first token on the line is no longer a #.

-check

Read all the input file without generating anything. The warning level is automatically increased. This is designed for checking a source file for errors and warnings.

 

-D

Define the symbol following the ‘D’. Example:

-DNODEBUG

The symbol NODEBUG is #defined. Note that there is NO space between the D and the symbol.

-E

Generate an intermediate file with the output of the preprocessor. The output file name will be deduced from the input file name, i.e., for a compilation of foo.c you will obtain foo.i.

-E+

Like the -E option, but instead of generating a #line xxx directive, the preprocessor generates a # xxx directive. Some systems need this option, specifically some versions of gcc.

-EP

Like the -E option, but no #line directives will be generated.

 

-errout=

Append the warning/error messages to the indicated file. Example :

errout=Myexe.err

This will append to Myexe.err all warnings and error messages.

 

-eN

Set the maximum error count to N. Example:

-e25

The compiler will stop after 25 errors.

 

-fno-inline

Disables any inling of functions. No inline expansion will be performed, even if optimizations or on.

 

-Fo<file name>

This forces the name of the output file. Normally lcc deduces that name from the name of the input file, i.e., for foo.c, foo.obj, or foo.asm, or foo.i will be generated.

This option allows you to specify another name. Please, be careful using it, since no checks are run on the name. You can, in principle, make careless errors, such as: lcc foo.c –Fogg.c and the output binary object file will be called gg.c..., which is not recommended.

-g2

Generate the debugging information. Two types of debug information will be generated: COFF and CodeView (NB09).

 -g3

Arrange for function stack tracing. If a trap occurs, the function stack will be displayed.

-g4

Arrange for function stack and line number tracing.

-g5

Arrange for function stack, line number, and return call stack corruption tracing.

 

-I

Add a path to the path included, i.e., to the path the compiler follows to find the header files. Example:  
-Ic:\project\headers  
Note that there is NO space between the I and the following path.

 

-libcdl

Use the declarations needed to link with lcclibc.dll instead of libc.lib, the static library. Most of the declarations are the same for both except some rare exceptions like the table of the ctype.h library

-M

Print in standard output the names of all files that the preprocessor has opened when processing the given input file. If the Fo option is active, printing will be done in the file indicated by the Fo option. No object file is generated.

-M1

Print in standard output each include file recursively, indicating where it is called from, and when it is closed.

-nw

No warnings will be emitted. Errors will be still printed.

-O

Optimize the output. This activates the peephole optimizer and the inline keyword. Do not use this option with the -g option above.

-overflowcheck Generates code to check for any overflow in integer addition, subtraction and multiplication. If an overflow is detected, the user function 
void _overflow(char *FunctionName, int line);
is called. A default implementation that just prints the function name and the line in stderr is supplied.

-p6

Enable Pentium III instructions

-profile Generate profiling code. At each line, the compiler will generate code to record the number of times execution passed through that line. At the end of the program, a file is generated with the name "profile.data", that contains the profiling data for the execution. This file is erased, if it exists.

 

-S

Generate an assembly file. The output file name will be deduced from the input file name, i.e., for a compilation of foo.c you will obtain foo.asm.

-U

Undefine the symbol following the ‘U’.

-unused

Warns about unused assignments and suppresses the dead code. Use with care

-s n

Set the switch density to n that must be a value between 0.0 and 1.0. Example: -s 0.1

-v

Show compiler version and compilation date

-x

Generate browse information in an .xrf file.

 

-z

Generate a file with the intermediate language of lcc. The name of the generated file will have a ‘.lil’ extension (lcc’s intermediate language).

-Zp[1,2,4,8,16]

Set the default alignment in structures to one, two, four, etc. If you set it to one, this actually means no alignment at all.

File.asm

All files with a .asm extension are assumed to be files written for lcc’s assembler. Beware: the syntax of lcc’s assembler is radically different from all standard assemblers. See the chapter about the assembler for more information.