2011-02-11 5 views
0

GCC 링커에 문제가 있습니다. 특히 m33.h에서 몇 가지 기능을 사용하고 있으므로 -lm 플래그를 사용하고 있습니다.-lm 플래그로 GCC 링커 문제 발생

main.c의 :(텍스트 + 0x8e5) :. 나는 다음과 같은 오류를 얻을. 참조`바닥 '

main.c의 :(텍스트 + 0x901)에 정의되지 않은 : 정의되지 않은`에 참조 천장을 만들다 '

여기 내 메이크의 관련 부분입니다 : 내가 내려다 보이는거야 바보

아마
myprogram: main.o 
    gcc -Wall -pedantic -o myprogram main.o 

main.o: main.c foo.h bar.h 
    gcc -Wall -pedantic -lm main.c 

뭔가,하지만 난 n은 분명 해요 메이크 파일에 관해서는 전문가.

+0

math.h를 포함 시켰습니까? – Nick

답변

4

-lm은 링커 플래그이므로 위의 링크 규칙에 추가해야합니다 (즉, 잘못된 규칙에 추가 했음).

+0

그 같은 바보 같은 실수를 알았어, 고마워! 시간 제한이 초과되면 수락합니다. –

+1

@Tyler 저기에 그 이상이 있습니다. -lm은 object611775가 아래에 기록한대로 객체 뒤에 와야합니다. 그리고 main.o 규칙은 main.o 대신 a.out을 생성 할 것입니다. 왜냐하면 여러분은 -o $ @가 빠졌기 때문에 ... 기본 규칙을 사용하고 CFLAGS = Wall -pedantic으로 설정해야합니다. –