- C:\WINDOWS\system32>C:\WATCOM\binnt\wcc386.exe
- Open Watcom C32 Optimizing Compiler Version 1.9
- Portions Copyright (c) 1984-2002 Sybase, Inc. All Rights Reserved.
- Source code is available under the Sybase Open Watcom Public License.
- See http://www.openwatcom.org/ for details.
- Usage: wcc386 [options] file [options]
- Options:
- ( /option is also accepted )
- -3r 386 register calling conventions
- -3s 386 stack calling conventions
- -4r 486 register calling conventions
- -4s 486 stack calling conventions
- -5r Pentium register calling conventions
- -5s Pentium stack calling conventions
- -6r Pentium Pro register calling conventions
- -6s Pentium Pro stack calling conventions
- -aa allow non const initializers for local aggregates or unions
- -ad[=<file>] generate make style automatic dependency file
- -add[=<file>] specify first dependency in make style auto-depend file
- -adt[=<file>] specify target in make style auto-depend file
- -adhp[=<file>]specify default path for headers without one
- -adbs force path separators to '\' in auto-depend file
- -adfs force path separators to '/' in auto-depend file
- -ai turn off type checking on static initialization
- (Press return to continue)
- -aq turn off qualifier mismatch warning for const/volatile
- -bc build target is a console application
- -bd build target is a dynamic link library (DLL)
- -bg build target is a GUI application
- -bm build target is a multi-thread environment
- -br build with dll run-time library
- -bt=<id> build target for operating system <id>
- -bw build target is a default windowing application
- -d<id>[=text] precompilation #define <id> [text]
- -d0 no debugging information
- -d1{+} line number debugging information
- -d2 full symbolic debugging information
- -d3 full symbolic debugging with unreferenced type names
- -d+ allow extended -d macro definitions
- -db generate browsing information
- -e=<num> set limit on number of error messages
- -ecc set default calling convention to __cdecl
- -ecd set default calling convention to __stdcall
- -ecf set default calling convention to __fastcall
- -ecp set default calling convention to __pascal
- -ecr set default calling convention to __fortran
- -ecs set default calling convention to __syscall
- (Press return to continue)
- -ecw set default calling convention to __watcall (default)
- -ee call epilogue hook routine
- -ef use full pathnames in error and warning messages
- -ei force enums to be at least as large as an int
- -em force enum base type to use minimum integral type
- -en emit routine names in the code segment
- -ep[=<num>] call prologue hook routine with <num> stack bytes available
- -eq do not display error messages (they are still written to a file)
- -et Pentium profiling
- -ez generate PharLap EZ-OMF object files
- -fh[=<file>] use pre-compiled headers
- -fhq[=<file>] do not display pre-compiled header activity warnings
- -fi=<file> force <file> to be included
- -fo[=<file>] set object or preprocessor output file name
- -fr[=<file>] set error file name
- -fti print informational message when opening include file
- -fp2 generate 287 floating-point code
- -fp3 generate 387 floating-point code
- -fp5 optimize floating-point for Pentium
- -fp6 optimize floating-point for Pentium Pro
- -fpc calls to floating-point library
- -fpi inline 80x87 instructions with emulation
- (Press return to continue)
- -fpi87 inline 80x87 instructions
- -fpr generate backward compatible 80x87 code
- -g=<id> set code group name
- -hc generate Codeview debugging information
- -hd generate DWARF debugging information
- -hw generate Watcom debugging information
- -i=<path> add another include path
- -j change char default from unsigned to signed
- -mc compact memory model (small code/large data)
- -mf flat memory model (small code/small data assuming CS=DS=SS=ES)
- -ml large memory model (large code/large data)
- -mm medium memory model (large code/small data)
- -ms small memory model (small code/small data)
- -na disable automatic inclusion of _ialias.h
- -nc=<id> set code class name
- -nd=<id> set data segment name
- -nm=<file> set module name
- -nt=<id> set name of text segment
- -o{a,b,c,d,e,f[+],h,i,k,l,m,n,o,p,r,s,t,u,x,z} control optimization
- a -> relax aliasing constraints
- b -> enable branch prediction
- c -> disable <call followed by return> to <jump> optimization
- (Press return to continue)
- d -> disable all optimizations
- e[=<num>] -> expand user functions inline (<num> controls max size)
- f -> generate traceable stack frames as needed
- f+ -> always generate traceable stack frames
- h -> enable expensive optimizations (longer compiles)
- i -> expand intrinsic functions inline
- k -> include prologue/epilogue in flow graph
- l -> enable loop optimizations
- l+ -> enable loop unrolling optimizations
- m -> generate inline code for math functions
- n -> allow numerically unstable optimizations
- o -> continue compilation if low on memory
- p -> generate consistent floating-point results
- r -> reorder instructions for best pipeline usage
- s -> favor code size over execution time in optimizations
- t -> favor execution time over code size in optimizations
- u -> all functions must have unique addresses
- x -> equivalent to -obmiler -s
- z -> NULL points to valid memory in the target environment
- -pil preprocessor ignores #line directive
- -p{c,l,w=<num>} preprocess source file
- c -> preserve comments
- (Press return to continue)
- l -> insert #line directives
- w=<num> -> wrap output lines at <num> columns. Zero means no wrap.
- -q operate quietly
- -r save/restore segment registers across calls
- -ri return chars and shorts as ints
- -s remove stack overflow checks
- -sg generate calls to grow the stack
- -st touch stack through SS first
- -tp=<id> set #pragma on( <id> )
- -u<id> undefine macro <id>
- -v output function declarations to .def
- -vcap VC++ compatibility: alloca allowed in argument lists
- -w=<num> set warning level number
- -wcd=<num> warning control: disable warning message <num>
- -wce=<num> warning control: enable warning message <num>
- -we treat all warnings as errors
- -wx set warning level to maximum setting
- -za disable extensions (i.e., accept only ISO/ANSI C)
- -zc place const data into the code segment
- -zdf DS floats i.e. not fixed to DGROUP
- -zdp DS is pegged to DGROUP
- -zdl Load DS directly from DGROUP
- (Press return to continue)
- -ze enable extensions (i.e., near, far, export, etc.)
- -zev enable arithmetic on void derived types
- -zfw generate FWAIT instructions
- -zff FS floats i.e. not fixed to a segment
- -zfp FS is pegged to a segment
- -zgf GS floats i.e. not fixed to a segment
- -zgp GS is pegged to a segment
- -zg generate function prototypes using base types
- -zk0 double-byte character support: Kanji
- -zk0u translate double-byte Kanji to Unicode
- -zk1 double-byte character support: Traditional Chinese
- -zk2 double-byte character support: Korean
- -zk3 double-byte character support: Simplified Chinese
- -zkl double-byte character support: local installed language
- -zku=<num> load UNICODE translate table for specified code page
- -zl remove default library information
- -zld remove file dependency information
- -zlf add default library information to object files
- -zls remove automatically inserted symbols
- -zm place each function in separate segment
- -zp=<num> pack structure members with alignment {1,2,4,8,16}
- -zpw output warning when padding is added in a struct
- (Press return to continue)
- -zq operate quietly (equivalent to -q)
- -zro omit floating point rounding calls (non ANSI)
- -zri inline floating point rounding calls
- -zs syntax check only
- -zt[=<num>] set far data threshold (i.e., larger objects go in far memory)
- -zu SS != DGROUP (i.e., don't assume stack is in your data segment)
- -zw generate code for Microsoft Windows
- -zz remove "@size" from __stdcall function names (10.0 compatible)