मैं एंड्रॉइड स्टूडियो (ndk r10d) में एंड्रॉइड एप्लिकेशन को संकलित करने का प्रयास कर रहा हूं जो कुछ C++ कोड का उपयोग करता है। मुझे सी ++ 11 की आवश्यकता है इसलिए मैंने -std=gnu++11
जोड़ा (मुझे उपयोग किए जा रहे एक्सटेंशन के लिए c++11
के बजाय gnu++11
की आवश्यकता है)। मैं stlport stl का उपयोग कर रहा हूं, अन्य पुस्तकालयों के कारण मैं इस एसएलएल लाइब्रेरी का उपयोग कर रहा हूं। तो मेरी CFLAGS और एसटीएल मापदंडों build.gradle फ़ाइल में इस तरह दिखता है:त्रुटि प्राप्त करना: नामस्थान 'std' में 'shared_ptr' किसी प्रकार का नाम नहीं है
stl "stlport_static"
cFlags " mylib1.a mylib2.a ... -fexceptions -frtti -std=gnu++11"
मैं भी शामिल किया है स्मृति: #include <memory>
जब संकलित करने के लिए मैं यह त्रुटि प्राप्त की कोशिश कर रहा:
'shared_ptr' in namespace 'std' does not name a type
मैं अभी तक स्मार्ट पॉइंटर्स के लिए बूस्ट कार्यान्वयन का उपयोग कर रहा हूं लेकिन सी ++ 11 के कदम के साथ मैं मानक कार्यान्वयन का उपयोग करूंगा।
त्रुटि का कारण क्या वास्तविक कोड है? –
मूल त्रुटि इस परिभाषा पर है जिसे मैंने कोड कम करने के लिए जोड़ा है लेकिन जहां भी मैं इस मैक्रो का उपयोग करने का प्रयास करता हूं, त्रुटियों में त्रुटियों को देखा जाता है: #define myapp_shared_ptr std :: shared_ptr – royeet
shared_ptr किसी प्रकार का नाम नहीं है। यह एक प्रकार का टेम्पलेट नाम है। क्या आप वाकई इसका इस्तेमाल करते समय साझा_ptr कर रहे हैं? जब मैं इसे छोड़ देता हूं तो त्रुटि मुझे "क्लास टेम्पलेट के उपयोग के लिए टेम्पलेट तर्कों की आवश्यकता होती है" –
Charlie