Object file

object files are the outputs of a compiler (or, more frequently) an assembler (which may take compiler output as its input). That means they provide functions, but are not executable. These may be aggregated in libraries which are also object files, by using a suitable archiver like ar. Any or all of these can be combined to make an executable file (program).

You can use the nm command to see what symbols are defined in an object file or program.