Un fitxer objecte és un fitxer compilat que conté codi màquina o bytecode, així com altres dades i metadades, generades a partir del codi font durant el procés de compilació. També es genera un fitxer objecte des d'un assemblador. El codi màquina que es genera es coneix com a codi objecte.[1]
El codi objecte sol ser reubicable, i normalment no executable directament. Hi ha diversos formats per als fitxers d'objectes i el mateix codi màquina es pot empaquetar en diferents formats de fitxers d'objectes. Un fitxer objecte també pot funcionar com una biblioteca compartida.[2]
Les metadades que poden incloure els fitxers d'objectes es poden utilitzar per enllaçar o depurar; inclou: informació per resoldre referències creuades simbòliques entre diferents mòduls, informació de reubicació, informació de desenrotllament de la pila, comentaris, símbols de programa, informació de depuració o perfilació. Altres metadades poden incloure la data i l'hora de compilació, el nom i la versió del compilador i altra informació d'identificació.[3]
El terme "programa d'objectes" data almenys de la dècada de 1950:
"Un terme de programació automàtica per al programa en llenguatge màquina produït per la màquina mitjançant la traducció d'un programa font escrit pel programador en un llenguatge similar a la notació algebraica."
Un programador d'ordinadors genera codi objecte amb un compilador o assemblador. Per exemple, a Linux, el compilador de la col·lecció de compiladors de GNU generarà fitxers amb una extensió.o que utilitzen el format ELF. La compilació a Windows genera fitxers amb una extensió.obj que utilitzen el format COFF. A continuació, s'utilitza un enllaçador per combinar el codi objecte en un programa executable o una biblioteca que extreu biblioteques del sistema precompilades segons sigui necessari.[4]