2011-11-29 2 views
0

난 내 programm에 컴파일하려고 해요 그리고 난 SIGINT에 대한 신호 처리기 내부의 공유 메모리 (shmctl()를) 삭제하려고하면 내가정의되지 않은 참조는

가 계속 (이것은 공유 메모리를 사용하는 서버의)

undefined reference to `schmctl' 
내가 주변 검색이 보통 컴파일

gcc -o server server.c -lrt 

같은 것을 필요로 보았다하지만 그렇다하더라도 내가 같은 오류가 계속. 누구나 내가 무엇을해야하는지, 그리고 무엇을 필요로하는지 이해하도록 도와 줄 수 있습니까?

+3

맞춤법 오류가 있습니다. ** ** 모든 경고없이 ** 컴파일하지 마라 ** :'-W -Wall -Wextra -pedantic -Wwrite-string' (적어도 모든 경고를 사용하지 않는다면 적어도 StackOverflow에 오지 마라.) –

+0

감사합니다. 대답. 내가 어떻게 경고가 이것을 막을 수 있었는지 모르겠지만, 나는 더 조심해야한다. 무엇보다도, 적어도 내 실수를 찾으려고 노력하는 시간을 절약 할 수있다. – yiannis

+0

C에서 선언없이 함수를 사용할 수 있습니다 (방금 배운 것처럼 해로운 영향). 컴파일러는 경고를 통해 그 사실을 알려줍니다. –

답변

3

-lrtlibrt.a 라이브러리와 연결 중임을 의미합니다. 오류를 제거하려면 shmctl 기호가 정의 된 라이브러리를 찾아서 gcc으로 전달해야합니다.

+0

고마워, 내가 대답으로 받아 들일거야, 왜냐하면 내 - lrt 질문을 설명합니다. – yiannis