1.3 Selecting a Compiler

The following compilers are available for developing NLMs:

You must link a prelude file into your application. The CLib SDK includes prelude files for the CodeWarrior, Open Watcom, and GNU C/C++ compilers.

1.3.1 Metrowerks CodeWarrior for NetWare

Metrowerks CodeWarrior for NetWare is an Integrated Development Environment (IDE) in which you can edit, compile, and debug your code. CodeWarrior for NetWare will soon support C++ NLM development. It supports the development of server-based applications, such as NLMs. The CodeWarrior for NetWare linker combines object code into NLMs, drivers, and modules.

CodeWarrior also has a source-level debugger for debugging NLMs from a client workstation.

Certain levels of the DeveloperNet Program include a copy of CodeWarrior or allow you to purchase one at a reduced price. For details, see the Novell DeveloperNet Program.

1.3.2 Open Watcom Compiler

Open Watcom compiler is a cross-platform compiler that produce object files for multiple operating systems. It has both command-line and IDE interfaces and generates 32-bit protected mode code. It has the usual complement of switches to specify such things as

  • Whether to include debug information in the object file

  • The name of the object file (if other than the default)

  • What directory or directories to get include files from

  • The amount and kind of optimization to perform

Watcom was the first compiler to support NLM development. It supports developing C applications for NetWare, but does not support C++ applications for NetWare. The Watcom linker does not support symbol prefixing except through use of the ALIAS link directive. Because “@” is overloaded in linker syntax, the solution is difficult and requires quoting. Do not attempt to include Watcom libraries.For more information, see Open Watcom.

1.3.3 GNU and Other Compilers

The GNU C/C++ compiler is used on many UNIX* and Linux* systems, but it also supports NLM development. For more information, see GNU Compiler Collection.

Other C/C++ compilers such Borland C++ and Microsoft Visual C++ can be used to develop NLMs. You use them to write and compile the code and then use a linker from another vendor, such as Open Watcom.