Sin más información se me ocurre que podría deberse a que se incluye un archivo de cabecera en dos módulos distintos y al enlazarlos se definen las mismas funciones dos veces.
Se puede evitar esto simplemente con una definición y una condición. Por ejemplo (archivo clases.h, por poner uno)
#ifndef clases_H
#define clases_H
// contenido de la cabecera
#endif
La primera vez que se incluye el archivo no está definido
clases_H, se cumple la condicion
"#ifndef clases_H" define clases_H y el resto del contenido. Pero la segunda vez que se incluya ya estará defindo y por tanto se salta ese código y no se vuelven a redefinir las funciones.
Bueno, espero que se entienda más o menos.