Erros de "múltipla definição", "primeiro definido aqui"

Eu tenho 3 projetos:Servidor, Cliente eCommons. Criando pares de cabeçalho e fonte emCommons não causa problemas e posso acessar as funções livremente de ambosServidor eCliente.

No entanto, por algum motivo, criar arquivos de origem / cabeçalho adicionais dentroServidor ouCliente projeto sempre causamultiple definition of (...) efirst defined here erros.

Exemplo:

commands.h (no diretório raiz doCliente projeto)

#ifndef COMMANDS_H_
#define COMMANDS_H_

#include "commands.c"

void f123();

#endif /* COMMANDS_H_ */

commands.c (no diretório raiz doCliente projeto)

void f123(){

}

main.c (no diretório raiz doCliente projeto)

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

}

Erros:

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

Limpar, reconstruir o índice, reconstruir projetos não ajuda. Nem reiniciar o computador.

questionAnswers(4)

yourAnswerToTheQuestion