2010-08-24 16 views
5

उबंटू में मैं पाउ() और sqrt() फ़ंक्शन का उपयोग कैसे करूं? मैंने math.h शीर्षलेख फ़ाइल शामिल की है लेकिन यह अभी भी मुझे एक त्रुटि देता है।मैं यूनिक्स पर पाउ ​​() और sqrt() का उपयोग कैसे करूं?

+2

आपको क्या त्रुटि मिल रही है? –

+0

'पाउ' का उपयोग करना अक्सर एक गलती होती है। यदि ये केवल दो गणित कार्य हैं जिनका आप उपयोग कर रहे हैं (जिसके लिए आपको '-lm' की आवश्यकता है), तो आप यह जांचना चाहेंगे कि आप वास्तव में' पाउ 'चाहते हैं या नहीं। यदि एक्सपोनेंट हमेशा एक पूर्णांक होता है, और/या यदि आधार 2 है, तो बेहतर करने के लिए बहुत तेज़ (तेज, और गारंटीकृत-सटीक, दोनों 'पाउ'' के विपरीत होते हैं। –

उत्तर

7

libm.so से लिंक करें, कंपाइलर कमांड लाइन पैरामीटर में -lm जोड़ना।

+0

ठीक है तो आपकी कहानियां क्या हैं .. मुझे अपने कंपाइलर कमांड में सीसी के बाद -एलएम जोड़ना चाहिए, है ना? – Pavitar

+0

हां, बिल्कुल। (भराव)। –

+1

सभी फाइलों और अन्य पुस्तकालयों के बाद, लाइन के अंत में '-lm' रखें। आम तौर पर, सभी .o फ़ाइलों के बाद '-lsomething' डालें, ताकि जब आप दाईं ओर बाईं ओर वाली रेखा को पढ़ सकें, तो लिंकर लाइन को पुन: स्कैन किए बिना सभी कार्यों को ढूंढ सकता है। हां, कुछ वातावरण चीजों को किसी भी क्रम में रखने में सहायता करते हैं, लेकिन अंगूठे का यह नियम आपको प्लेटफॉर्म पर जाने पर बहुत दर्द बचाएगा। ध्यान दें कि विंडोज़ पर अधिकांश टूलचेन इस क्रम को पसंद करते हैं, उदाहरण के लिए। – RBerteig

9

अपने लिंकर कमांड में -lm जोड़ने का प्रयास करें। अधिकांश गणित कार्य libm में रहते हैं जिन्हें स्पष्ट रूप से लिंक किया जाना चाहिए।

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