Código C compilado com C ++: referência indefinida

Eu tenho um pequeno programa que posso compilar com o GCC e o ICC sem dificuldades, mas também gostaria que o código funcionasse com o G ++ e o ICPC. Eu tentei adicionar isso:

#ifdef __cplusplus
  extern "C" {
#endif

no começo e isso:

#ifdef __cplusplus
  }
#endif

no final de todos os arquivos de cabeçalho, mas ainda recebo várias referências indefinidas a erros "...".

questionAnswers(4)

yourAnswerToTheQuestion