मुझे पता है कि यह एक बहुत पुरानी पोस्ट है, लेकिन मुझे एक समाधान मिल गया है जो केवल हाल ही में उपलब्ध हुआ है और विंडोज प्लेटफॉर्म पर लगभग सभी उद्देश्य-सी 2.0 सुविधाओं को सक्षम करता है।
Gcc 4.6 के आगमन के साथ, Objective-C compiler में ऑब्जेक्टिव-सी 2.0 लैंग्वेज फीचर्स (ब्लॉक, डॉट सिंटैक्स, सिंथेसाइज्ड प्रॉपर्टीज आदि) के लिए सपोर्ट जोड़ा गया था ( पूर्ण विवरण के लिए रिलीज नोट्स देखें)। उनके रनटाइम को भी एप्पल के अपने ऑब्जेक्टिव-सी 2.0 रनटाइम के लिए लगभग समान रूप से काम करने के लिए अपडेट किया गया है। संक्षेप में इसका मतलब है कि (लगभग) कोई भी कार्यक्रम जो मैक पर क्लैंग के साथ वैध रूप से संकलन करेगा, वह भी संशोधन के साथ gcc 4.6 के साथ संकलन करेगा।
एक साइड-नोट के रूप में, एक सुविधा जो उपलब्ध नहीं है, वह है डिक्शनरी / एरे / वगैरह। शाब्दिक रूप से वे सभी क्लैंग में एप्पल के एनएसबर्ड, एनएसएरे, एनएसएनम्बर, आदि वर्गों का उपयोग करने के लिए हार्ड-कोडेड हैं।
हालांकि, यदि आप Apple के व्यापक ढांचे के बिना खुश हैं, तो आप कर सकते हैं। जैसा कि अन्य उत्तरों में कहा गया है, GNUStep और Cocotron Apple के कक्षा पुस्तकालयों के संशोधित संस्करण प्रदान करते हैं, या आप अपना खुद का (मेरा पसंदीदा विकल्प) लिख सकते हैं।
विंडोज प्लेटफॉर्म पर जीजीसी 4.6 प्राप्त करने का एक तरीका मिनगॉव है, और इसे द मिनग वेबसाइट से डाउनलोड किया जा सकता है । सुनिश्चित करें कि जब आप इसे स्थापित करते हैं तो आप C, C ++, Objective-C और Objective-C ++ की स्थापना शामिल करते हैं। वैकल्पिक होते हुए, मैं MSYS वातावरण स्थापित करने का सुझाव भी दूंगा।
एक बार स्थापित, उद्देश्य-सी 2.0 स्रोत के साथ संकलित किया जा सकता है:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW में -mwindows
ध्वज के साथ देशी GUI विंडोज अनुप्रयोगों को संकलित करने के लिए समर्थन भी शामिल है । उदाहरण के लिए:
g++ -mwindows MyFile.cpp
मैंने अभी तक इसका प्रयास नहीं किया है, लेकिन मैं कल्पना करता हूं कि यदि आप ऑब्जेक्टिव-सी ++ में अपने ऑब्जेक्टिव-सी क्लासेस को सबसे अधिक संभव लेयर पर लपेटते हैं, तो आपको मूल विंडोज जीयूआई सी ++ और ऑब्जेक्टिव-सी सभी को एक विंडोज एप्लीकेशन में सफलतापूर्वक इंटर-कनेक्ट करने में सक्षम होना चाहिए।