La compilation de programme contenant extern “C”

Je suis en train d'utiliser un makefile pour compiler un programme quelqu'un d'autre a écrit, en utilisant cygwin. Je reçois beaucoup de messages d'erreur, dont beaucoup se plaignent error: template with C linkage.

Après une recherche autour pour un peu, il semble que le problème est relié à extern "C". Cette ligne est contenue dans le fichier cygwin/usr/include/pthread.h, qui est inclus avec #include < pthread.h > dans l'un des en-têtes. Et lorsque je supprime cette ligne, la plupart des messages d'erreur disparaît. Mais il y a un peu de gauche, du tri suivant:

/usr/include/pthread.h:67:5: error: previous declaration of int pthread_atfork(void (*  )(),void ( *)(), void ( *)())’ with C++’ linkage

/usr/include/sys/unistd.h:136:5: error: conflicts with new declaration with C linkage

Personne ne sait comment résoudre ce problème? Je serais ravi de s'asseoir et d'apprendre tout ce genre de choses dans le détail, mais je n'ai pas de temps avant j'ai besoin de ce programme en cours d'exécution..

Il n'ya pas beaucoup que nous pouvons faire pour vous aider sans voir le code que vous essayez de compiler.
Ne pas modifier pthread.h, qui est le plus probablement raison, vous avez besoin de comprendre pourquoi vous obtenez l'erreur d'origine qui n'est probablement pas là. Premier candidat à je chercherais sont des macros.

OriginalL'auteur jorgen | 2013-08-28