The C preprocessor and compiler

The esql command does not itself compile and link the program. The esql command translates code to C code and then calls the C compiler to compile and link the C code. The C preprocessor preprocesses the C language preprocessing directives. The C compiler performs the compilation, and it also calls a link editor to link the C object files.

Your source file contains commands for the C preprocessor (directives of the form #directive). When you use the default order of compilation, these C directives have no effect on statements but take effect in the usual way when the C compiler processes the source file.

If you choose to run the C preprocessor on the source file before the preprocessor, you can use the C language #define and typedef directives to define host variables.

The C compiler takes the following actions:
  • Compiles the C language statements to object code
  • Links to libraries and any other files or libraries you specify
  • Creates an executable file

If you use a compiler other than the local C compiler by setting the ONEDB_C environment variable to a non-default value, you might need to override the default options of that compiler.