Retro video games delivered to your door every month!
Click above to get retro games delivered to your door ever month!
X-Hacker.org- CA-Clipper/ExoSpace 1.0g - <b>compiling</b> http://www.X-Hacker.org [<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Compiling
------------------------------------------------------------------------------

     With the Microsoft C compiler files on your PATH, use a command like
     this one to compile your program:

     cl /AL /c /FPa /Gs /G2 /Zl hello.c

     This example uses the following compiler options (after compiling the
     program, you will have a file named HELLO.OBJ):

 /AL

     Specifies large memory model, which is required for CA-Clipper.

 /c

     Compile only--prevents the compiler from automatically invoking the
     linker.  This option is required.

 /FPa

     Request the alternate floating point routines.  This is required by
     CA-Clipper if you are using floating point arithmetic in C 5.1 modules.
     This switch does not apply to other compiler versions, since their
     floating point arithmetic is not compatible with CA-Clipper's.

 /Gs

     Specifies no stack checking.  This option is recommended to improve
     performance.  (You can also disable stack checking with the /Ox option,
     which maximizes code optimization.)

 /G2

     Generates 286 instructions.  If the object code you are producing will
     only go into a CA-Clipper/ExoSpace version of your program, use the /G2
     option to improve performance.  This option is recommended.

 /Zl

     Prevents a reference to the C runtime libraries from being included in
     the compiled object modules.  This helps to ensure that you are not
     inadvertently using incompatible C runtime library routines.  If you do
     use such routines, you should specify the required libraries explicitly
     in your link script.

     Note:  Microsoft C 5.1 advanced optimizations may produce rather
     serious problems.  For example, using the /Ox option (maximum
     optimization) sometimes compiles the typical code fragment:

     for ( . . . )
        if (pointer != NULL && pointer->member . . . )

     as if it were written:

     for ( . . . )
           {
           temp = pointer->member;
           if (pointer != NULL && temp . . . )
           ...
           }

     This will fail in any protected-mode environment, including
     CA-Clipper/ExoSpace, Windows 3.x in enhanced mode, and OS/2.


Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson