2010-08-24 4 views
5

우분투에서는 pow() 및 sqrt() 함수를 어떻게 사용합니까? math.h 헤더 파일을 포함 시켰지만 여전히 오류가 발생합니다.UNix에서 pow() 및 sqrt()를 어떻게 사용합니까?

+2

무엇이 오류입니까? –

+0

'pow'는 종종 실수입니다. 이것들이 ('-lm'을 필요로하는) ​​오직 두가지 수학 함수라면, 정말로'pow'가 필요한지를 검사 할 수 있습니다. 지수가 항상 정수이고 밑이 2 인 경우 'pow'와는 달리 더 빠르고 정확하며 정확합니다. –

답변

7

컴파일러 명령 행 매개 변수에 -lm을 추가하면 libm.so에 링크됩니다.

+0

그래, 당신의 말은 .. 제 컴파일러 명령에서 참조 뒤에 -lm을 추가해야합니다, 그렇습니까? – Pavitar

+0

네, 그렇습니다. (필러). –

+1

'-lm'을 모든 .o 파일과 다른 라이브러리 다음에 줄의 끝에 넣으십시오. 일반적으로 모든 .o 파일 다음에'-lsomething '을 넣으십시오. 그러면 왼쪽에서 오른쪽으로 줄을 읽을 때 링커는 줄을 다시 스캔하지 않고 포함시켜야하는 모든 기능을 찾을 수 있습니다. 그렇습니다. 어떤 환경은 어떤 순서로든 물건을 넣는 것을 지원하지만,이 경험 법칙은 그렇지 않은 플랫폼으로 이동할 때 많은 고통을 덜어 줄 것입니다. Windows의 대부분의 툴 체인은이 순서를 선호합니다. – RBerteig

9

링커 명령에 -lm을 추가하십시오. 대부분의 수학 함수는 libm에 명시 적으로 링크되어야합니다.

관련 문제