我正在尝试使用makefile编译其他人已经编写好的程序,使用cygwin。我收到了很多错误消息,其中许多都抱怨error: template with C linkage
。
经过搜索,似乎问题与extern "C"
有关。这行代码包含在文件cygwin/usr/include/pthread.h中,并在一个头文件中使用#include < pthread.h >
包含。当我删除该行时,大多数错误消息都消失了。但还有一些错误消息保留了下来,如下所示:
/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
有人知道如何修复这个问题吗?我很想坐下来详细学习所有这些东西,但在需要运行这个程序之前我没有时间了...
pthread.h
,那很可能是正确的,你需要找出为什么会出现原始错误,这个错误很可能并不存在。我首先会查找的候选项是宏。 - David Rodríguez - dribeas