IT이야기

math.h를 포함함에도 불구하고 C에서 pow()에 대한 정의되지 않은 참조

cyworld 2022. 5. 8. 22:05
반응형

math.h를 포함함에도 불구하고 C에서 pow()에 대한 정의되지 않은 참조

중복 가능:
C에서 pow() 사용 문제
'분'에 대한 정의되지 않은 참조'란 무엇인가.

나는 나를 정말 어리둥절하게 만드는 간단한 과정으로 약간의 문제를 겪고 있다.

본질적으로, 나는 무엇보다도, 주어진 반지름에서 구의 부피를 계산하는 프로그램을 써야 한다.나는 그 옷을 사용할 줄 알았다.pow()단순하게 사용하기보다는 기능하다r*r*r추가 브라우니 포인트에 대해, 그러나 컴파일러는 나에게 다음과 같은 오류를 계속 준다.

'분' 수집2: 오류: ld가 종료 상태를 1개 반환함

내 코드는 다음과 같다.

#include <math.h>

#define PI 3.14159265 //defines the value of PI

/* Declare the functions */
double volumeFromRadius(double radius);

/* Calculate the volume of a sphere from a given radius */
double volumeFromRadius(double radius) {
    return (4.0/3.0) * PI * pow(radius,3.0f);
}

그리고 나는 그 명령으로 편찬하고 있다.gcc -o sphere sphere.c

이 코드는 잘 컴파일되고 실행된다. uni에서는 Windows 기계의 블록이지만, 집에 있는 Fedora 17에서는 명령행 컴파일러가 실행을 거부한다.어떤 생각이라도 고맙게 생각하겠어!

축복해, 이안

수학 라이브러리에 연결해야 하는 경우:

gcc -o sphere sphere.c -lm

표시되는 오류:error: ld returned 1 exit status링커에서 왔음ld(객체 파일을 결합한 gcc의 일부) 함수의 위치를 찾을 수 없기 때문에pow정의된다.

포함math.h정의가 아닌 다양한 기능의 선언을 가져오다.수학도서관에 데프가 있다.libm.a. 프로그램을 이 라이브러리와 연결해야 pow()와 같은 기능에 대한 호출이 해결된다.

참조URL: https://stackoverflow.com/questions/12824134/undefined-reference-to-pow-in-c-despite-including-math-h

반응형