पर उद्देश्य उद्देश्य-सी अनुप्रयोग मैं एक उद्देश्य सी डेस्कटॉप संस्करण बनाने के लिए एक्सकोड का उपयोग करने की कोशिश कर रहा हूं जो स्थिर सी ++ लाइब्रेरी के खिलाफ लिंक करता है। मैं ऐप्पल के क्लैंग कंपाइलर का उपयोग कर रहा हूं। मैं निम्नलिखित लिंकर त्रुटि हो रही है:सी ++ स्थिर पुस्तकालय
Apple clang version 3.0 (tags/Apple/clang-211.12) (based on LLVM 3.0svn)
Target: x86_64-apple-darwin11.2.0
Thread model: posix
"/Developer/usr/bin/ld" -demangle -dynamic -arch x86_64 -macosx_version_min 10.7.0 -syslibroot /Developer/SDKs/MacOSX10.7.sdk -o /Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug/sl marketplace analyitics.app/Contents/MacOS/sl marketplace analyitics -lcrt1.10.6.o -L/Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug -L/Users/andrew/Projects/sl-marketplace-analysis/platform/mac/sl marketplace analyitics/../../../../../Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug -filelist /Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Intermediates/sl marketplace analyitics.build/Debug/sl marketplace analyitics.build/Objects-normal/x86_64/sl marketplace analyitics.LinkFileList -framework Cocoa -lcore -lSystem /Developer/usr/bin/../lib/clang/3.0/lib/darwin/libclang_rt.osx.a -F/Users/andrew/Library/Developer/Xcode/DerivedData/sl-marketplace-analysis-exomzzahbygseghhwoeclcvpooeo/Build/Products/Debug
Undefined symbols for architecture x86_64:
"std::ios_base::Init::~Init()", referenced from:
___cxx_global_var_init in libcore.a(test.o)
"std::ios_base::Init::Init()", referenced from:
___cxx_global_var_init in libcore.a(test.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ऐसा लगता है जैसे कि यह सी ++ एसटीडी पुस्तकालय रूप से लिंक हो नहीं है। क्या यह समस्या है और यदि हां, तो मैं कैसे सुनिश्चित करूं कि यह इसके खिलाफ जुड़ा हुआ है?
अद्यतन:
मैं निर्माण करने के लिए एक खाली cpp फ़ाइल जोड़ने तो सब कुछ संकलित करता है तथा ठीक चलाता है। मुझे लगता है कि लिंकर को सी ++ एसडीडी लाइब्रेरी के खिलाफ लिंक करने के लिए एक तरीका चाहिए। मैंने एक्सकोड में सभी बिल्ड सेटिंग्स को देखने का प्रयास किया है लेकिन ऐसा कुछ भी नहीं ढूंढ रहा है जो मदद करता है।
मुझे एक ही समस्या का सामना करना पड़ा और पूरे दिन इस समाधान की तलाश में था इसे साझा करने के लिए धन्यवाद, एक आकर्षण की तरह काम करता है –
धन्यवाद !!! मैं हे डी एक स्थैतिक पुस्तकालय जो उद्देश्य-सी, सी ++, और उद्देश्य-सी ++ का संयोजन था।लाइब्रेरी में बिल्डिंग के दौरान इस ध्वज को शामिल नहीं किया गया है, लेकिन मेरे आईओएस एप्लिकेशन में लाइब्रेरी का उपयोग करते समय किसी कारण से जरूरी है। मुझे कोई जानकारी नहीं है की क्यों। – jocull
@jocull: जब आप एक स्थिर लाइब्रेरी बनाते हैं तो परिणामी फाइलें लिंक नहीं होती हैं, इसलिए अंतिम एप्लिकेशन के हिस्से के रूप में संग्रह को लिंक किए जाने तक पुस्तकालयों की आवश्यकता नहीं होती है। –