Я пытаюсь использовать make-файл для компиляции программы, которую кто-то написал, используя cygwin. Я получаю много сообщений об ошибках, из которых многие жалуются error: template with C linkage
.Программа компиляции, содержащая extern «C»
После поиска понемногу, похоже, проблема связана с 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', это, скорее всего, правильно, вам нужно выяснить, почему вы получаете исходную ошибку, которая, скорее всего, не существует. Первым кандидатом, которого я хотел бы найти, являются макросы. –