Ошибка компиляции библиотеки C - PullRequest
1 голос
/ 26 ноября 2011

Я пытаюсь скомпилировать библиотеку сортировки из http://www.yendor.com/programming/sort/

Прямая ссылка на библиотеку: http://www.yendor.com/programming/sort/sort-all.tgz

Когда я запускаю make , компилятор говорит:

gcc -g -O -DCUTOFF=15 -c sorttest.c
In file included from sorttest.c:15:
sort.h:66: error: conflicting types for ‘heapsort’
/usr/include/stdlib.h:301: error: previous declaration of ‘heapsort’ was here
make: *** [sorttest.o] Error 1

Может кто-нибудь помочь с этим вопросом?

1 Ответ

2 голосов
/ 26 ноября 2011

Морозный

Что ж, компилятор жалуется, что тип heapsort уже определен в строке 301 в /usr/include/stdlib.h ... традиционные методы решения этих проблем:

  • Используйте другое имя для статьи в вашем коде. Можно предположить, что myheapsort должно быть хорошо. (и да, вы можете изменить sort-all.tgz, потому что он опубликован под GNU GPL)
  • supress stdlib для определения heapsort с помощью #def #ifndef (если вы не можете изменить свой код).
  • Кричать, плакать, проклинать и желать, чтобы все stdlib с (по крайней мере) были созданы равными. Вздох.

Надеюсь, это поможет.

...