학교 수업/컴프 3

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

gnoJJ 2025. 5. 22. 23:48

여기 참고

"" 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 환경에 연결했다면 이렇게 해도 됨