2012-10-10 20 views
40

Possible Duplicate:
Problem using pow() in C
what is 'undefined reference to `pow''अपरिभाषित संदर्भ, math.h

मैं uni कि वास्तव में मुझे puzzling है का कोर्सवर्क का एक सरल टुकड़ा के साथ एक समस्या का एक सा हो रही सहित बावजूद।

अनिवार्य रूप से, मुझे एक प्रोग्राम लिखना है कि, अन्य चीजों के साथ, किसी दिए गए त्रिज्या से किसी क्षेत्र की मात्रा की गणना करता है। मैंने सोचा कि मैं बस r*r*r का उपयोग कर, अतिरिक्त ब्राउनी अंक के लिए बजाय pow() फ़ंक्शन का उपयोग करें चाहते हैं, लेकिन संकलक मुझे निम्न त्रुटि दे रही रखता है:

#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); 
} 
:

undefined reference to 'pow' collect2: error: ld returned 1 exit status

मेरे कोड ऐसा दिखाई देता है

और मैं घर पर आदेश gcc -o sphere sphere.c

यह संकलित करता है तथा कोड में ठीक चलाता है के साथ संकलन कर रहा हूँ :: uni पर Windows मशीनों पर ब्लॉक, लेकिन मेरे फेडोरा 17 पर कमांड लाइन संकलक चलाने के लिए मना कर दिया। किसी विचार का कृतज्ञता के साथ सराहना की जाएगी!

gcc -o sphere sphere.c -lm 

त्रुटि आप देख रहे हैं:

आशीर्वाद, इयान

उत्तर

78

आप गणित पुस्तकालय के साथ लिंक करने की आवश्यकता error: ld returned 1 exit status लिंकर ld (जीसीसी के बात यह है कि वस्तु फ़ाइलों को जोड़ती है) से है क्योंकि यह पता लगाने में असमर्थ है कि फ़ंक्शन pow कहां परिभाषित किया गया है।

math.h सहित विभिन्न कार्यों की घोषणा में आता है और उनकी परिभाषा नहीं। डीएच गणित पुस्तकालय libm.a में मौजूद है। आपको अपने प्रोग्राम को इस लाइब्रेरी से लिंक करने की आवश्यकता है ताकि पॉव() जैसे कार्यों को कॉल किया जा सके।

संबंधित मुद्दे