2.2.1. Naming conventions

The ARM compilers use suffix naming (filename-extension) conventions to identify the classes of file involved in compilation and in the linking process. The names used on the command line, and as arguments to preprocessor #include directives, map directly to host file names under UNIX and Windows/MS-DOS.

The ARM compilers use or generate files with the following file suffixes:


ARM C compilers recognize the .c suffix as source files.

ARM C++ compilers recognize .c, .cpp, .cp, .c++, and .cc suffixes as source files.


Header file (a convention only, this suffix has no special significance for the compiler).


ARM object file in ELF format.


ARM or Thumb assembly language file. (This can be placed in the input file list or, with the -S option, produced as an output file from the C and C++ compilers.)


Error and warning list file (the default output extension for -list option).


The ARM compilers support multiple file-naming conventions on all supported hosts. To ensure portability between hosts, use the following guidelines:

  • Ensure that filenames do not contain spaces. If you have to use pathnames or filenames containing spaces, enclose the path and filename in quotes.

  • Make embedded pathnames relative rather than absolute.

In each host environment, the compilers support:

  • native filenames

  • pseudo UNIX filenames in the format:


  • UNIX filenames using / as apath separator.

Filenames are parsed as follows:

  • a name starting with host-volume-name:/ is a pseudo UNIX filename

  • a name that does not start with host-volume-name:/ and contains / is a UNIX filename

  • a name that does not contain a / is a host filename.

Filename validity

The compilers do not check that filenames are acceptable to the host file system. If a filename is not acceptable, the compiler reports that the file cannot be opened, but the compiler gives no more diagnosis.

Output files

By default, the output files created by an ARM compiler are stored in the current directory. Object files are written in ARM Executable and Linkable Format (ELF). The ELF documentation is available in install_directory\PDF.

Copyright © 1999-2001 ARM Limited. All rights reserved.ARM DUI 0067D