IT Share you

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

shareyou 2020. 11. 10. 22:36
반응형

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


중복 가능성 :
C에서 pow () 사용 문제
''pow '에 대한 정의되지 않은 참조

나는 정말로 나를 혼란스럽게하는 유니에 대한 간단한 교과 과정에 약간의 문제가있다.

본질적으로, 나는 무엇보다도 주어진 반지름에서 구의 부피를 계산하는 프로그램을 작성해야합니다. 추가 Brownie 포인트에 대해 pow()단순히 사용하는 대신 함수를 사용할 것이라고 생각 r*r*r했지만 컴파일러는 계속 다음 오류를 발생시킵니다.

'pow'collect2에 대한 정의되지 않은 참조 : 오류 : 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 컴퓨터에서 code :: blocks에서 잘 컴파일되고 실행되지만 집에있는 Fedora 17에서는 명령 줄 컴파일러가 실행을 거부합니다. 어떤 생각이라도 감사하겠습니다!

축복, 이안


수학 라이브러리와 연결해야합니다.

gcc -o sphere sphere.c -lm

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

포함 math.h은 정의가 아닌 다양한 함수의 선언을 가져옵니다. def는 수학 라이브러리에 libm.a있습니다. pow ()와 같은 함수에 대한 호출이 해결되도록 프로그램을이 라이브러리와 연결해야합니다.

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

반응형