본문 바로가기
학교 수업/컴프 3

C에서 math.h 사용할 때 주의할 점

by JJong | 쫑 2025. 5. 22.

여기 참고

"" sqrt() 함수를 사용하기 위해서는 컴파일 시 -lm 옵션을 사용하여 수학 라이브러리를 링크해야 한다 (일부 컴파일러 및 환경에서 필요). 예를 들어, gcc 컴파일러를 사용하는 경우, 컴파일 명령은 gcc -o program program.c -lm 이런 식으로 됨. ""


-lm 을 붙이지 않으면?

>> 당연히 오류

ubuntu 에서 gcc 컴파일 중 실패함

calculate_distance 함수에서 pow, sqrt 함수 모두 잘 안 돌아간다. 이때 뒤에 -lm 을 붙이면 해결이 된다.

float calculate_distance(struct point p1, struct point p2) {
    int x1, x2, y1, y2;
    x1 = p1.xpos;
    y1 = p1.ypos;
    
    x2 = p2.xpos;
    y2 = p2.ypos;

    return ((float) sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2)));
}

 

gcc program.c -o program -lm

gcc 컴파일 후 실행까지 잘 되는 모습

 

ubuntu 아니어도 vscode 환경에 연결했다면 이렇게 해도 됨

'학교 수업 > 컴프 3' 카테고리의 다른 글

실습 12주차 segmentation fault  (0) 2025.05.29
malloc(): corrupted top size  (0) 2025.05.24
2주차 실습 - 반복문 조건문  (0) 2025.03.16

댓글