안녕하세여
왜 pow를 쓰려면 #include< math.h> 해주고 cc -lm -o pow pow.c로 -lm을 붙여줘야 하나요? 이렇게 안하고 기본적으 로 되게 세팅해 줄방법은 없나요? cc -o pow pow.c 이렇게 쓸수 있도록..
수고하세요
Makefile를 만드실것 아니면 라이브러리는 일일이 그렇게 커맨드 라인 에 적어주셔야 할겁니다.
표준 라이브러리가 아닌 수치연산 라이브러리를 사용할 경우는 -l옵션과
수치연산 라이브러리의 이름이 libm.a이므로 앞의 세자와 뒤의 .a를 뺀
m을 붙여 -lm 이라는 옵션을 붙여 준다고 하네요...
그런데 유닉스에서는 math.h안에 pow가 있던데 리눅스에서는 왜 이러는
것인지?
그렇다면 사용할때마다 해당 라이브러리의 이름을 찾으러 다녀야 하겠군요.
왜 유닉스에서는 포함되어있는 함수들이 리눅스에서는 이런 것인지 ...
궁금합니다.
타인을 자기 자신처럼 존경할수 있고, 자기가 하고 싶다고 생각하는 것을 타인에게 할 수 있다면, 그 사람은 참된 사랑을 알고 있는 사람이다. 그리고 세상에는 그 이상 가는 사람은 없다.
math.h를 include하는 것은 단지 function의 proto type을 알아오는 기능밖에는 없습니다. 즉, compile time에는 영향을 주지만 link time에 알아서 library를 가져다가 link하게 도와주진 않죠. 그래서 -lm 옵션이 필요한 것입니다.
사실 옛날에 pascal 쓰다가 c 쓰면서 이게 참 골아팠었던 것 같네요. 장단점이 있는 것이겠습니다만.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
Re: math.h가 include 가 안되는거 같습니다.. 왜 이러죠?
Makefile를 만드실것 아니면 라이브러리는 일일이 그렇게 커맨드 라인
에 적어주셔야 할겁니다.
저도 똑같은 문제에 걸렸습니다. ㅠ.ㅠ...
표준 라이브러리가 아닌 수치연산 라이브러리를 사용할 경우는 -l옵션과
수치연산 라이브러리의 이름이 libm.a이므로 앞의 세자와 뒤의 .a를 뺀
m을 붙여 -lm 이라는 옵션을 붙여 준다고 하네요...
그런데 유닉스에서는 math.h안에 pow가 있던데 리눅스에서는 왜 이러는
것인지?
그렇다면 사용할때마다 해당 라이브러리의 이름을 찾으러 다녀야 하겠군요.
왜 유닉스에서는 포함되어있는 함수들이 리눅스에서는 이런 것인지 ...
궁금합니다.
타인을 자기 자신처럼 존경할수 있고, 자기가 하고 싶다고 생각하는 것을 타인에게 할 수 있다면, 그 사람은 참된 사랑을 알고 있는 사람이다. 그리고 세상에는 그 이상 가는 사람은 없다.
math.h를 include하는 것은단지 function의 proto
math.h를 include하는 것은
단지 function의 proto type을 알아오는 기능밖에는 없습니다.
즉, compile time에는 영향을 주지만
link time에 알아서 library를 가져다가 link하게 도와주진 않죠.
그래서 -lm 옵션이 필요한 것입니다.
사실 옛날에 pascal 쓰다가 c 쓰면서 이게 참 골아팠었던 것 같네요.
장단점이 있는 것이겠습니다만.
댓글 달기