Before your program can be run or debugged, it must be in a form that can be executed. The Compiler can produce the following types of files:
An executable file has a filename extension of .exe.
To produce executable code, you need to modify the Output Type setting in the project properties.
By default, object code files have the extension .obj.
Object code files must be linked to create .exe or .dll files.
Intermediate code files have the extension .int.
.int files are dynamically loadable, and don't need to be linked into a system executable. You can ship them to your users as executable files, but we recommend that you use .exe files and .dll files for this.
To compile to .int files, your project must be set to compile to INT/GNT output type. In the Debug configuration INT/GNT projects compile to .int code by default. In Release configuration, they produce .gnt code. You can disable .gnt on the COBOL tab of your project properties for the Release configuration.
You can change the build settings of individual COBOL programs in your project to compile these to either .int or .gnt:
Use generated code files for testing and debugging. As generated code runs faster than intermediate code, it can be useful in debugging for large programs, or for debugging programs where the distance between breakpoints is large, for example.
Generated code files have the extension .gnt.
.gnt files are dynamically loadable, and don't need to be linked into a system executable. You can ship them to your users as executable files, but we recommend that you use .exe files and .dll files for this.
To compile generated code files (.gnt) your project must be set to compile to INT/GNT output type. By default, in the Debug configuration, this project type is set to produce .int code. In Release configuration, it is set to produce .gnt code. You can enable .gnt on the COBOL tab of your project properties for the Debug configuration.
You can change the build settings of individual COBOL programs in your project to compile these to either .int or .gnt:
This behavior is similar to .int and .gnt code but is different to linked shared libraries and system executables, which are always loaded at process start-up, whether they are used or not. Further, the code and memory used by shared libraries and system executables are only unloaded when the process terminates.
A Dynamic Link Library can contain more than one COBOL program and can also contain other language programs, such as C and C++. Dynamic Link Libraries can also be linked with third party object files or shared libraries. This behavior is similar to system executables and shared libraries but differs from .int and .gnt files, where each file corresponds to a single COBOL program.
You can bundle .int files and .gnt files in Micro Focus library files. The advantages of this are:
A library file has the file extension .lbr.
ProgC and ProgD could be compiled as generated code files, and then placed in a library file, mylib.lbr. When ProgA calls ProgC, mylib.lbr would be loaded into memory, also loading progc.gnt and progd.gnt. You would need to ship proga.gnt, progb.gnt, and mylib.lbr, as well as a trigger program.
To package the .int and .gnt files into an .lbr file, set the following properties: