गणित का उपयोग करने वाले C प्रोग्राम को कैसे संकलित करें?


15

मुझे math.h हेडर फ़ाइल में समस्या हो रही है और जब मैं स्क्वायर रूट फ़ंक्शन का उपयोग करता हूं sqrt(d)। लेकिन मेरा कंपाइलर इसका समर्थन नहीं कर रहा है। कृपया मुझे इस समस्या के बारे में सलाह दें।

मेरा उबंटू संस्करण 2012 है।


2
जब भी हम प्रोग्रामिंग सवालों से प्यार करते हैं - प्रश्न उबंटू से संबंधित होना चाहिए - क्या आप विस्तार से स्पष्ट कर सकते हैं कि मुद्दा यहाँ क्या है - उदाहरण आदि?
जीवाश्म

यह sqrt ((x2-X1) * (x2-X1) + (y2-y1) * (y2-y1) की तरह है ... मेरा कंपाइलर इस कमांड का समर्थन नहीं कर रहा है
shreya

1
कृपया अपना प्रश्न संपादित करके जवाब दें। कोड उदाहरण दें, आप कैसे संकलित कर रहे हैं, ubuntu का संस्करण, संकलक का संस्करण, क्या आपने दूसरे संकलक / डिस्ट्रो पर ऐसा करने की कोशिश की है। क्या होता है आदि?
जीवाश्म

1
@shreya आपके द्वारा लिखे गए कोड की समस्याओं से संबंधित प्रश्न विशिष्ट समस्या का वर्णन करना चाहिए - और इसे पुन: पेश करने के लिए मान्य कोड शामिल करना चाहिए - प्रश्न में ही। मार्गदर्शन के लिए SSCCE.org देखें ।
ब्रिअम

4
मुझे नहीं लगता कि यह ऑफ टॉपिक है। विंडोज जैसे कई अन्य ओएस पर, सी कार्यक्रमों में गणित पुस्तकालय का उपयोग करने के लिए एक विशेष लिंकर विकल्प पारित करना अनावश्यक है। यहां तक ​​कि कुछ यूनिक्स जैसे ऑपरेटिंग सिस्टम पर मानक सी लाइब्रेरी कार्यान्वयन की आवश्यकता नहीं है। जब वे GNU / Linux सिस्टम में उबंटू की तरह स्विच करते हैं, तो यह एक समस्या होती है। मैं चाहता हूं कि प्रश्न को विशिष्ट त्रुटि को शामिल करने के लिए बेहतर लिखा गया था - अगर हम इस विषय पर विचार करते हैं, तो शायद हमें इसे संपादित करना चाहिए - लेकिन यह सामान्य सी प्रोग्रामिंग प्रश्न नहीं है, यह एक सवाल है कि gccउबंटू पर कैसे उपयोग किया जाए। ।
एलियाह कगन

जवाबों:


25

-lmअपने gccआदेश के अंत में संलग्न करें ।

जीएनयू / लिनक्स सिस्टम पर उबंटू जैसे जीसीसी के सभी हालिया संस्करणों के साथ, जब आप गणित पुस्तकालय का उपयोग करते हैं, तो आपको इसे स्पष्ट रूप से लिंक करना होगा। यह स्वचालित रूप से बाकी सी लाइब्रेरी के साथ जुड़ा नहीं है।

यदि आप कमांड-लाइन पर gccया g++कमांड के साथ संकलन कर रहे हैं , तो आप कमांड के अंत में डालकर-lm इसे पूरा करेंगे ।

उदाहरण के लिए: gcc -o foo foo.c -lm


5

यदि आप GCC या G ++ का उपयोग करके LINUX में math.h लाइब्रेरी के साथ C प्रोग्राम संकलित करने जा रहे हैं तो आपको कंपाइल कमांड के बाद –lm विकल्प का उपयोग करना होगा ।

gcc xyz.c -o xyz -lm

यहाँ,

gcc कंपाइलर कमांड (संकलक नाम)
xyz.c एक स्रोत फ़ाइल नाम है।
-o आउटपुट फ़ाइल को निर्दिष्ट करने का एक विकल्प है।
xyz आउटपुट फ़ाइल का नाम है।
-lm गणित पुस्तकालय (againt लिंक करने के लिए एक विकल्प है libm )।

अधिक जानकारी के लिए यहाँ लिंक है जिस पर पूरा लेख है।
Linux में math.h के साथ C प्रोग्राम को संकलित करना।


लिंकिंग कमांड के बाद, कंपाइल कमांड नहीं। (नाइटपैकिंग के लिए खेद है, लेकिन इसे सही होने से अन्य स्थितियों को समझने में मदद मिलती है)।
मौसेरे भाई
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.