मैं c / c ++ का उपयोग करके osx और linux दोनों के लिए कमांड लाइन इंटरफ़ेस निष्पादक विकसित कर रहा हूं। परियोजना opencv के खिलाफ लिंक होगी। क्या मुझे libc ++ या libstdc ++ का उपयोग करना चाहिए?
मैं c / c ++ का उपयोग करके osx और linux दोनों के लिए कमांड लाइन इंटरफ़ेस निष्पादक विकसित कर रहा हूं। परियोजना opencv के खिलाफ लिंक होगी। क्या मुझे libc ++ या libstdc ++ का उपयोग करना चाहिए?
जवाबों:
मैं प्रत्येक OS के लिए मूल पुस्तकालय का उपयोग करूंगा अर्थात GNU / Linux पर libstdc ++ और Mac OS X पर libcd ++।
libc ++ GNU / Linux पर 100% पूर्ण नहीं है, और libstdc ++ अधिक पूर्ण होने पर इसका उपयोग करने का कोई वास्तविक लाभ नहीं है। इसके अलावा, यदि आप C ++ में लिखी गई किसी अन्य लाइब्रेरी से लिंक करना चाहते हैं, तो वे लगभग निश्चित रूप से libstdc ++ के साथ बनाई गई हैं, इसलिए आपको उनका उपयोग करने के लिए भी लिंक करना होगा।
अधिक जानकारी यहां विभिन्न प्लेटफार्मों पर libc की पूर्णता ++ के बारे में।
std::ctype_base::mask
लिए मानों से <ctype.h>
स्थिरांक तक पूरी तरह से प्लेटफ़ॉर्म-निर्भर है। (CPU इंट्रिंसिक्स कंपाइलर द्वारा प्रदान किया जाता है, अपवाद हैंडलिंग एक निम्न-स्तरीय ABI परत द्वारा किया जाता है, लेकिन IO आमतौर पर पूरी तरह से C ++ और C पुस्तकालयों में किया जाता है, न कि निम्न-स्तरीय सामान)।
प्रमुख लिनक्स वितरण LLVM libc ++ प्रदान नहीं करते हैं, क्योंकि:
यदि अंततः libc ++ वितरण का हिस्सा बन गया, तो यह एक वैकल्पिक घटक के रूप में होगा। इसके खिलाफ लिंक करने के लिए संभवतः अतिरिक्त विकल्पों की आवश्यकता होगी।
जैसे कि जोनाथन ने कहा, आपको डिफ़ॉल्ट रूप से जो भी उपकरण शामिल है, उसका उपयोग करना चाहिए। GCC प्रतिस्थापन के रूप में कॉन्फ़िगर किए जाने के बाद से Clang लिनक्स में उपयोग करने के लिए सुरक्षित है, इसलिए उस पहलू में आपको 2 संकलक के बारे में चिंता करने की आवश्यकता नहीं है। इसके अलावा जब आप दो प्लेटफार्मों को लक्षित कर रहे हैं, तो आपको सीमेक पर एक नज़र डालनी चाहिए।