Microchip Technology SW006022-1N Data Sheet

Page of 338
MPLAB
®
 XC16 C Compiler User’s Guide
DS52071B-page 58
 2012 Microchip Technology Inc.
3.5
COMPILER OUTPUT
There are many files created by the compiler during the compilation. A large number of 
these are intermediate files are deleted after compilation is complete, but many remain 
and are used for programming the device or for debugging purposes.
3.5.1
Output Files
The compilation driver can produce output files with the following extensions, which are 
case-sensitive.
The names of many output files use the same base name as the source file from which 
they were derived. For example the source file input.c will create an object file called 
input.o
 when the -c option is used.
The default output file is a ELF file called a.out, unless you override that name using 
the -o option.
If you are using an IDE, such as MPLAB IDE, to specify options to the compiler, there 
is typically a project file that is created for each application. The name of this project is 
used as the base name for project-wide output files, unless otherwise specified by the 
user. However check the manual for the IDE you are using for more details.
The compiler is able to directly produce a number of the output file formats which are 
used by Microchip development tools.
The default behavior of xc16-gcc is to produce a ELF output. To make changes to the 
files output or the file names, see Section 3.7 “Driver Option Descriptions”.
3.5.2
Diagnostic Files
Two valuable files produced by the compiler are the assembly list file, produced by the 
assembler, and the map file, produced by the linker.
The assembly list file contains the mapping between the original source code and the 
generated assembly code. It is useful for information such as how C source was 
encoded, or how assembly source may have been optimized. It is essential when con-
firming if compiler-produced code that accesses objects is atomic, and shows the 
region in which all objects and code are placed.
The option to create a listing file in the assembler is -a. There are many variants to this 
option, which may be found in the MPLAB Assembler, Linker and Utilities for PIC24 
MCUs and dsPIC DSCs User’s Guide (DS51317)
. To pass the option from the compiler, 
see Section 3.7.8 “Options for Assembling”.
TABLE 3-4:
FILE NAMES
Extensions
Definition
file.hex
Executable file
file.cof
COF debug file (default)
file.elf
ELF debug file
file.o
Object file (intermediate file)
file.S
Assembly code file (required preprocessing)
file.s
Assembly code file (intermediate file)
file.i
Preprocessed file (intermediate file)
file.p
Preprocedure abstraction assembly language file (intermediate file)
file.map
Map file
Note:
Throughout this manual, the term project name will refer to the name of the 
project created in the IDE.