के साथ कमांड लाइन पर एकाधिक ऑब्जेक्टिव-सी फ़ाइलों को संकलित करना उम्मीद है कि सरल प्रश्न। मैं क्लैंग के साथ कमांड लाइन से संकलित मूल उद्देश्य-सी सीखने की कोशिश कर रहा हूं। मैं समझता हूं कि एक्सकोड जटिल परियोजनाओं के लिए एक बेहतर समाधान है और मैं जल्द ही इसे आगे बढ़ने की योजना बना रहा हूं, लेकिन मुझे व्यक्तिगत रूप से लगता है कि मैं एक भाषा को बेहतर समझ सकता हूं अगर मैं इसे टर्मिनल में मैन्युअल रूप से संकलित कर सकता हूं, और छोटी परिचयात्मक प्रोग्रामिंग परियोजनाओं के लिए मुझे यह कम लगता है एक नई परियोजना शुरू करने के बजाय टर्मिनल में संकलन करने में परेशानी।क्लैंग
तो सवाल यह है कि: मैं एक उद्देश्य-सी प्रोग्राम कैसे संकलित करता हूं जिसमें एकाधिक फाइलें (कमांड लाइन से) होती हैं? (मैं कोचन की पाठ्यपुस्तक के अध्याय 7 से एक मुख्य.एम और फ्रैक्शन.एम फ़ाइल के साथ अंश कार्यक्रम करने की कोशिश कर रहा हूं, जो #import "Fraction.h" और एक Fraction.h फ़ाइल है जो फाउंडेशन फ्रेमवर्क आयात करता है।) मैं
clang -fobjc-arc main.m -o prog1
की तरह कुछ का उपयोग एक एकल फाइल को संकलित करने लेकिन अगर मुझे लगता है कि टाइप करें और मैं इस परियोजना में main.m के अलावा अन्य फ़ाइलें शामिल करना चाहते हैं, मैं सहित त्रुटियों मिलती है:
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
अगर मैं कमांड में अतिरिक्त फ़ाइलों को तर्क के रूप में जोड़ने का प्रयास करें, जैसे कि
clang -fobjc-arc main.m Fraction.h Fraction.m -o prog1
तो मैं
clang: error: cannot specify -o when generating multiple output files
मिलता और अगर मैं तो जैसे
clang -fobjc-arc main.m Fraction.h Fraction.m
तो -ओ तर्क को दूर मैं त्रुटियों सभी नींव ढांचे की चर्चा करते हुए, अंत में "घातक में समाप्त होने का एक विशाल ढेर मिल त्रुटि: उत्सर्जित बहुत सारी त्रुटियां, अब रोक रही हैं "।
मैं यह कैसे कर सकता हूं और इसे काम कर सकता हूं? या क्या मुझे बस इसे चूसना होगा और जैसे ही एक से अधिक फाइल शामिल हों, एक्सकोड का उपयोग करें?
एक त्रुटि यह है कि आप संकलक के लिए तर्क के रूप में फ़ाइल "Fraction.h" को निर्दिष्ट करते हैं। –
आह! धन्यवाद। यही है: इसे सिर्फ एमएम फाइलों की आवश्यकता होती है, न कि। एच। –