Errores de "definición múltiple", "primero definidos aquí"

Tengo 3 proyectos:Servidor, Cliente yLos comunes. Hacer pares de encabezado y fuente enLos comunes no causa ningún problema y puedo acceder a las funciones libremente desde ambosServidor yCliente.

Sin embargo, por alguna razón, crea archivos de origen / encabezado adicionales enServidor oCliente proyecto siempre causamultiple definition of (...) yfirst defined here errores

Ejemplo:

comandos.h (en el directorio raíz de laCliente proyecto)

#ifndef COMMANDS_H_
#define COMMANDS_H_

#include "commands.c"

void f123();

#endif /* COMMANDS_H_ */

comandos.c (en el directorio raíz de laCliente proyecto)

void f123(){

}

C Principal (en el directorio raíz de laCliente proyecto)

#include "commands.h"
int main(int argc, char** argv){

}

Errores:

make: *** [Client] Error 1      Client
first defined here              Client
multiple definition of `f123'   commands.c

La limpieza, el índice de reconstrucción, los proyectos de reconstrucción no ayudan. Tampoco reiniciar la computadora.

Respuestas a la pregunta(4)

Su respuesta a la pregunta