2012-05-05 16 views
8

में हेडर फाइल को खोजने के लिए मैं तो यह निष्पादन योग्य उदाहरण में लिंक होता है जीसीसी में libmathematica.a नामित एक लाइब्रेरी फ़ाइल शामिल करने की कोशिश कर रहा हूँ में असमर्थ है।जीसीसी एक शामिल पुस्तकालय

मैं साथ gcc main.c libmathematica.a -o example

नोट यह करने के लिए प्रयास: मैं जीसीसी के साथ ऐसा करने के लिए है, के रूप में ld यह ठीक से लिंक नहीं किया जाएगा सही प्रणाली पुस्तकालयों

साथ लेकिन मैं मिलता है: fatal error: mathematica.h: No such file or directory, जो अजीब है क्योंकि गणित HK लाइब्रेरी में है।

क्या आप मदद कर सकते हैं?

उत्तर

11

लाइब्रेरी में एक हेडर फ़ाइल नहीं हो सकती है। यह एक निश्चित स्थान पर उपस्थित होना है और आप -I संकलक ध्वज के साथ उस स्थान को निर्दिष्ट करने की: हेडर फाइल निर्देशिका जहां main.c है या एक उपनिर्देशिका में है, तो उस सुनिश्चित हो में है, तो

gcc -I/path/to/mathematica/include main.c libmathematica.a -o example 

आप #include निर्देश में कोट्स का उपयोग करते हैं और कोण ब्रैकेट नहीं करते हैं।

+0

ओह ... यह समझ में आता है। धन्यवाद! –

1

समस्या आपकी स्रोत फ़ाइल में होगी। यदि सिस्टम में गणितिकाएच निर्देशिका में है तो आप #include <mathematica.h> का उपयोग करेंगे और यदि यह कुछ स्थानीय निर्देशिका में था तो आप #include "libs/mathematica.h" जैसे कुछ का उपयोग करेंगे। जीसीसी मैं/usr: की तरह मैं/पूर्ण/path/to// निर्देशिका/कहाँ// वांछित/हैडर/रहता

उदाहरण के लिए एक विकल्प -

+0

मुझे फ़ॉलो नहीं है ... देखें मुख्य.c गणितिका का हिस्सा नहीं है, यह एक बाहरी कार्यक्रम है। मैं गणित –

+0

से कोड चलाने के लिए उदाहरण के लिए गणित को जोड़ने की कोशिश कर रहा हूं गणितिका फ़ाइल कहां स्थित है? कुछ करें/-name "* mathematica.h" ढूंढें। यदि इसमें मुख्य रूप से शामिल है जैसे/usr/include शामिल हैं तो आप # शामिल <गणित HK> का उपयोग कर सकते हैं अन्यथा इसे उसी निर्देशिका में आपके मुख्य.c के रूप में रखा जाना चाहिए और # शामिल "गणित।" का उपयोग करें। –

+0

मैं इसे पुस्तकालय में शामिल किया गया था, जो गलत था। –

1

जीसीसी कॉल करने के लिए जोड़ने का प्रयास करें/शामिल/गणित -lmathematica- उदाहरण के लिए main.c

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