Sto provando ad usare un makefile per compilare un programma che qualcun altro ha scritto, usando cygwin. Ricevo molti messaggi di errore, molti dei quali si lamentano di error: template with C linkage
.Programma di compilazione contenente extern "C"
Dopo aver cercato un po 'sembra che il problema sia collegato a extern "C"
. Questa riga è contenuta nel file cygwin/usr/include/pthread.h, incluso in #include <pthread.h>
in una delle intestazioni. E quando rimuovo questa linea, la maggior parte dei messaggi di errore scompare. Ma ce ne sono alcuni, del seguente tipo:
/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
Qualcuno sa come risolvere questo problema? Mi piacerebbe sedermi e imparare tutte queste cose in dettaglio ma non ho tempo prima di aver bisogno di questo programma in esecuzione ..
Non c'è molto che possiamo fare per aiutarti senza vedere il codice effettivo che stai cercando di compilare. –
Non modificare 'pthread.h', che probabilmente ha ragione, è necessario capire perché si ottiene l'errore originale che probabilmente non è presente. Il primo candidato che vorrei cercare sono le macro. –