방금 수학 라이브러리에서 함수를 참조하는 프로그램을 컴파일하기 위해 gcc가 -lm
플래그를 필요로한다는 것을 발견했습니다. 시간 라이브러리와 같은 다른 라이브러리를 포함하는 프로그램을 컴파일 할 때 명시 적 연결 플래그가 필요하지 않은 이유가 궁금합니다. time()
함수가 호출 된 프로그램을 작성하면 연결 옵션이 없어도 문제없이 컴파일됩니다. 그러나 수학 라이브러리가 포함 된 프로그램은 -lm
플래그가 없으면 작동하지 않습니다.gcc : 수학 라이브러리를 연결하는 데 -lm 플래그가 필요한 이유는 무엇입니까?
누구든지이 문제의 원인을 설명해주십시오. 시간 내 줘서 고마워. time()
및 다른 기능 자체와 GCC 항상 링크가 하지 않는과 libc C 라이브러리 (libc
)에 정의 된 builtin
을하기 때문에
이상한 역사적 이유가 있지만 그 이유는 다음과 같습니다. http://stackoverflow.com/questions/1033898/why-do-you-have-to-link-the-math-library-in-c – birryree