2011-11-26 4 views
1
나는 도서관에 http://www.yendor.com/programming/sort/

C 라이브러리 컴파일이 오류

직접 링크에서 정렬 라이브러리를 컴파일하기 위해 노력하고있어

: http://www.yendor.com/programming/sort/sort-all.tgz

내가 을 실행을 컴파일러는 말한다 :

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 

수 누군가이 문제에 도움이됩니까? 서리가 내린

+0

두 파일처럼 보이는데'heapsort'를 정의하려고합니다. – tekknolagi

답변

2

,

음, 컴파일러가 타입 heapsort 이미 /usr/include/stdlib.h에 라인 301에 정의 된 것을 불평 ... 이러한 문제를 처리하는 전통적인 방법은 다음과 같습니다

  • 다른 이름을 사용 귀하의 코드에있는 불쾌한 기사. 하나는 myheapsort이 훌륭하게해야한다고 가정합니다. (그렇습니다. sort-all.tgz을 수정할 수 있습니다.) GNU GPL로 출판되었습니다.
  • #def #ifndef를 사용하여 supress stdlib의 정의 heapsort을 정의 할 수 있습니다 (코드를 변경할 수없는 경우).
  • 외침, 외침, 저주, 그리고 모두 stdlib (적어도) 어디서 평등하게 창조 되었습니까. 한숨.

희망이 있습니다.

+0

고마워!, 조언을 사용하고 코드를 myheapsort로 변경했습니다. – Icestorm

관련 문제