विंडोज के लिए उद्देश्य-सी


230

विंडोज प्लेटफॉर्म पर Objective-C लिखने का सबसे अच्छा तरीका क्या होगा?

साइगविन और जीसीसी? वहाँ एक तरह से मैं किसी भी तरह यह दृश्य स्टूडियो में एकीकृत कर सकता है?

उन पंक्तियों के साथ - इस तरह के कुछ के लिए विंडोज एसडीके को कैसे लिंक और उपयोग करना है, इसके बारे में कोई सुझाव हैं। इसका एक अलग जानवर है, लेकिन मुझे पता है कि मैं विंडोज डीएलएल में असेंबली और लिंक लिख सकता हूं, जो मुझे उन कॉलों तक पहुंच प्रदान कर रहा है, लेकिन मुझे नहीं पता कि बिना गोग्लिंग के यह कैसे करना है और टुकड़ों में दिशा-निर्देश प्राप्त करना है।

क्या किसी को इस तरह की चीजों को करने या समझाने के लिए एक अच्छे ऑनलाइन या बुक रिसोर्स की जानकारी है?


5
अगर आप इसे सिर्फ iOS के लिए कर रहे हैं, तो आप PM Baty द्वारा iOS बिल्ड एनवायरनमेंट का उपयोग कर सकते हैं ...
कोल जॉनसन

जवाबों:


146

पिछले दो उत्तरों पर विस्तार करते हुए, यदि आप सिर्फ ऑब्जेक्टिव-सी चाहते हैं, लेकिन कोको फ्रेमवर्क में से कोई भी नहीं, तो gcc किसी भी प्लेटफॉर्म पर काम करेगा। आप इसे Cygwin के माध्यम से उपयोग कर सकते हैं या MinGW प्राप्त कर सकते हैं। हालांकि, यदि आप कोको फ्रेमवर्क चाहते हैं, या कम से कम उनमें से एक उचित उपसमुच्चय है, तो GNUStep और Cocotron आपके सबसे अच्छे दांव हैं।

Cocotron बहुत सारे सामानों को लागू करता है जो GNUStep नहीं करता है, जैसे CoreGraphics और CoreData, हालांकि मैं इस बात की पुष्टि नहीं कर सकता कि उनका कार्यान्वयन एक विशिष्ट ढांचे पर कैसे पूरा होता है। उनका उद्देश्य Cocotron को OS X के नवीनतम संस्करण के साथ अद्यतित रखना है ताकि कोई भी व्यवहार्य OS X प्रोग्राम Windows पर चल सके। क्योंकि GNUStep आमतौर पर gcc के नवीनतम संस्करण का उपयोग करता है, इसलिए वे Objective-C ++ और बहुत सारे Objective-C 2.0 सुविधाओं के समर्थन में भी जोड़ते हैं।

मैंने GNUStep के साथ उन विशेषताओं का परीक्षण नहीं किया है, लेकिन यदि आप gcc के पर्याप्त नए संस्करण का उपयोग करते हैं, तो आप उनका उपयोग करने में सक्षम हो सकते हैं। मैं कुछ साल पहले GNUStep के साथ Objective-C ++ का उपयोग करने में सक्षम नहीं था। हालाँकि, GNUStep किसी भी प्लेटफ़ॉर्म के बारे में संकलन करता है। Cocotron एक बहुत ही मैक-केंद्रित परियोजना है। हालाँकि अन्य प्लेटफ़ॉर्म पर इसे संकलित करना संभव है, यह XCode प्रोजेक्ट फाइल्स, मेकफाइल्स नहीं है, इसलिए आप केवल OS X पर इसकी रूपरेखाएँ बॉक्स के बाहर संकलित कर सकते हैं। यह XCode पर विंडोज ऐप्स को संकलित करने के निर्देशों के साथ आता है, लेकिन नहीं किसी भी अन्य मंच। मूल रूप से, संभवतः Cocotron के लिए विंडोज डेवलपमेंट का माहौल तैयार करना संभव है, लेकिन यह GNUStep के लिए एक सेट करना उतना आसान नहीं है, और आप अपने दम पर रहेंगे, इसलिए GNUStep निश्चित रूप से जाने का तरीका है यदि आप विकास कर रहे हैं विंडोज सिर्फ विंडोज के लिए विरोध के रूप में।

इसके लायक क्या है, Cocotron को MIT लाइसेंस के तहत लाइसेंस प्राप्त है, और GNUStep को LGPL के तहत लाइसेंस प्राप्त है।


1
आप हमेशा खुले स्रोत वाले कोको फ्रैमवर्क्स को पोर्ट कर सकते हैं। उदाहरण CoreFoundation किया जा रहा है।
कोल जॉनसन

कोर फाउंडेशन के सभी नहीं खुला स्रोत है। एक बड़ी राशि बंद स्रोत है।
uchuugaka

X'D I dunno क्यों इस आदमी को एक बेहतरीन जवाब मिला, वह उस सामान की कोशिश भी नहीं करता जिसके बारे में वह बात कर रहा है। उन्हें bs उत्तरों के लिए एक नया बैज बनाना चाहिए। कोई अपराध नहीं @michael। यह एक दिलचस्प पढ़ा है।
वोल्फपैक'08

कोई अपराध नहीं हुआ, लेकिन रिकॉर्ड के लिए, जिस समय मैंने यह उत्तर लिखा था, मैं विंडोज़ के लिए ऑब्जेक्टिव-सी को संकलित करने के लिए कुछ हफ्तों से संघर्ष कर रहा था, और जीएनयूएसटीपी और कोकैट्रॉन दोनों की कोशिश कर रहा था। आखिरकार कुछ समय में संकलक कीड़े के कारण मुझे C ++ में परियोजना को फिर से लिखने के लिए मजबूर किया गया, और आइवरी को विंडोज पर 0 से शुरू नहीं किया गया। मैंने "मैंने उन विशेषताओं का परीक्षण नहीं किया है" का संदर्भ दिया था, लेकिन मैं उस समय के नए ऑब्जेक्टिव-सी 2.0 फीचर्स के बारे में बात कर रहा था, जो केवल एक साल से भी कम समय के लिए Apple प्लेटफार्मों पर उपलब्ध था, जब यह उत्तर लिखा गया था, और बस GNUStep में उतरा था।
माइकल बकले

89

आप विंडोज वातावरण के अंदर Objective C का उपयोग कर सकते हैं। यदि आप इन चरणों का पालन करते हैं, तो यह ठीक काम करना चाहिए:

  1. यात्रा GNUstep वेबसाइट और डाउनलोड GNUstep MSYS Subsystem(GNUstep के लिए MSYS), GNUstep Core(GNUstep के लिए पुस्तकालय), औरGNUstep Devel
  2. इन फ़ाइलों को डाउनलोड करने के बाद, उस क्रम में स्थापित करें, या आपको कॉन्फ़िगरेशन की समस्या होगी
  3. C:\GNUstep\GNUstep\System\Library\Headers\Foundation1 पर नेविगेट करें और सुनिश्चित करें कि Foundation.hमौजूद है
  4. एक कमांड प्रॉम्प्ट खोलें और सही तरीके से स्थापित gcc -vकरने के लिए चलाएं GNUstep MSYS(यदि आपको कोई फ़ाइल नहीं मिली त्रुटि, सुनिश्चित करें कि आपके binफ़ोल्डर में GNUstep MSYSहै PATH)
  5. GNUstep की कार्यक्षमता का परीक्षण करने के लिए इस सरल "हैलो वर्ल्ड" कार्यक्रम का उपयोग करें:

    #include <Foundation/Foundation.h>
    
    int main(void)
    {
        NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
        NSLog(@"Hello World!.");
        [pool drain];
     return;
    }
  6. कमांड प्रॉम्प्ट पर वापस जाएं और cdजहां आपने "हैलो वर्ल्ड" प्रोग्राम को सहेजा है और फिर उसे संकलित करें: 2

    gcc -o helloworld.exe <HELLOWORLD>.m -I /GNUstep/GNUstep/System/Library/Headers -L /GNUstep/GNUstep/System/Library/Libraries -std=c99 -lobjc -lgnustep-base -fconstant-string-class=NSConstantString
  7. अंत में, कमांड प्रॉम्प्ट से, helloworldइसे चलाने के लिए टाइप करें

सभी बेहतरीन, और उद्देश्य-सी के साथ मज़े करो!


नोट :

  1. मैंने डिफ़ॉल्ट इंस्टॉल पथ का उपयोग किया - अपनी कमांड लाइन को तदनुसार समायोजित करें
  2. सुनिश्चित करें कि आप का फ़ोल्डर पथ मेरा जैसा है, अन्यथा आपको एक त्रुटि मिलेगी

1
यह सुझाया गया संस्थापन मेरे पीसी पर काम नहीं करता है क्योंकि मैंने पहले ही gcc स्थापित किया है जिसका उपयोग मैंने nasm के लिए किया था। तो मैं बस के लिए सही gcc -o helloworld...है c:\gnustep\bin\gcc -o helloworld...और यह काम किया। विकल्प पर्यावरण चर को संशोधित करने के लिए होगा, जो मैंने तब से किया था जब मैं सिर्फ ऑब्जेक्टिव सी को देख रहा था। बिंदु के उत्तर के लिए teshguru को धन्यवाद।
मार्टिन बर्जर

चीजों के नाम के आसपास कोड स्वरूपण हटाने पर विचार करें। GNUstep MYSY कोड नहीं है, यह सिर्फ एक सॉफ्टवेयर का नाम है। यदि आप बाहर खड़े होने के लिए कुछ चाहते हैं, तो शायद इसे गले लगाने पर विचार करें? और अगर कोई टैग से जुड़ता है, तो टैग सीमांकक का उपयोग करने पर विचार करें, लेकिन टैग डेलिम्स में उचित नाम डालने का कोई कारण नहीं होना चाहिए।
वोल्फपैक'08

जब y y का उपयोग किया जाता है c: \ gnustep \ bin \ gcc -o helloworld.exe helloworld.m -I / GNUstep / GNUstep / System / Library / Headers -L / GNUstep / GNUstep / System / पुस्तकालय / पुस्तकालय-पुस्तकालय = c99 -lobjc - lgnustep-base -fconstant-string-class = NSConstantString यह मेरे लिए काम करता है
Dalvik

13

इसके अलावा:

Cocotron एक ओपन सोर्स प्रोजेक्ट है जिसका उद्देश्य Apple Inc. के कोको दस्तावेज़ द्वारा वर्णित क्रॉस-प्लेटफ़ॉर्म ऑब्जेक्टिव-सी एपीआई को लागू करना है। इसमें AppKit, Foundation, ऑब्जेक्टिव-सी रनटाइम और CoreGraphics और CoreFoundation जैसे सपोर्ट API शामिल हैं।

http://www.cocotron.org/


4
Cocotron प्रोजेक्ट को XCode से क्रॉस-संकलित करने के लिए डिज़ाइन किया गया है, विंडोज़ पर नहीं लिखा गया है और वहां संकलित किया गया है।
डान उडे

2
यह एक अच्छा जवाब नहीं है, मुझे यह भी पता नहीं है कि ओपी ने इसे 'उत्तर' के रूप में क्यों चुना क्योंकि कोकोट्रॉन मैक के लिए है और ओपी एक विंडोज आधारित समाधान चाहता है।
cbrulak

आप सही हैं - जब मैंने इसे पढ़ा तो मैं थोड़ा उत्तेजित हो गया: "सामान्य लक्ष्य किसी भी व्यवहार्य मंच पर पूर्ण समर्थन प्रदान करना है, इस परियोजना का उद्देश्य जितना संभव हो उतना पोर्टेबल होना है। हालांकि, इस समय अधिकांश काम। Microsoft Windows के लिए समर्थन प्रदान करने पर ध्यान केंद्रित किया गया। विशेष रूप से NT आधारित संस्करण, 2000 विस्टा तक। "
लूथर बेकर

13

WinObjC? आईओएस के लिए विंडोज ब्रिज (पहले 'प्रोजेक्ट आइलैंडवुड' के रूप में जाना जाता था)।

IOS के लिए विंडोज ब्रिज (जिसे WinObjC भी कहा जाता है) एक माइक्रोसॉफ्ट ओपन सोर्स प्रोजेक्ट है जो विजुअल स्टूडियो / विंडोज के लिए एक उद्देश्य-सी विकास वातावरण प्रदान करता है। इसके अलावा, WinObjC iOS API संगतता के लिए समर्थन प्रदान करता है। जबकि अंतिम रिलीज बाद में यह गिरावट होगी (पुल को नए टूलिंग क्षमताओं का लाभ उठाने की अनुमति देगा जो आगामी विज़ुअल स्टूडियो अपडेट अपडेट के साथ जहाज जाएगा),

यह पुल अपने वर्तमान स्थिति में अब खुले स्रोत वाले समुदाय के लिए उपलब्ध है। अभी और पतन के बीच। एमआईटी लाइसेंस के तहत एक ओपन-सोर्स प्रोजेक्ट के रूप में आईओएस पुल। परियोजना की महत्वाकांक्षा को देखते हुए, आईओएस डेवलपर्स के लिए विंडोज पर एप्लिकेशन बनाना और चलाना आसान हो गया है।

Salmaan अहमद iOS के लिए विंडोज ब्रिज पर एक गहन पोस्ट है http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ पर चर्चा संकलक, रनटाइम, आईडीई एकीकरण, और पुल क्या है और क्या नहीं। सबसे अच्छा, iOS पुल के लिए स्रोत कोड लाइव है अभी GitHub ।

IOS ब्रिज x86 और x64 प्रोसेसर आर्किटेक्चर के लिए बनाए गए विंडोज 8.1 और विंडोज 10 दोनों ऐप्स को सपोर्ट करता है, और जल्द ही हम एआरएम के लिए कंपाइलर ऑप्टिमाइजेशन और सपोर्ट को जोड़ देंगे, जो मोबाइल सपोर्ट जोड़ता है।


9

मुझे Cocotron प्रोजेक्ट के बारे में मिश्रित भावनाएँ हैं। मुझे खुशी है कि वे स्रोत कोड जारी कर रहे हैं और साझा कर रहे हैं, लेकिन मुझे नहीं लगता कि वे चीजों को सबसे आसान तरीके से कर रहे हैं।

उदाहरण।
Apple ने ऑब्जेक्टिव-सी रनटाइम के लिए सोर्स कोड जारी किया है , जिसमें गुण और कचरा संग्रह शामिल है। हालांकि कोकट्रॉन परियोजना का उद्देश्य-सी रनटाइम का अपना कार्यान्वयन है। प्रयास को नकल करने के लिए परेशान क्यों? यहां तक ​​कि एक विज़ुअल स्टूडियो प्रोजेक्ट फ़ाइल भी है जिसका उपयोग एक objc.dll फ़ाइल बनाने के लिए किया जा सकता है। या अगर आप वास्तव में आलसी हैं, तो आप डीएलएल फ़ाइल को विंडोज पर सफारी की स्थापना से कॉपी कर सकते हैं।

वे CoreFoundation का लाभ उठाने के लिए भी परेशान नहीं हुए, जो कि Apple द्वारा खुला भी है। मैंने इस बारे में एक सवाल पोस्ट किया लेकिन जवाब नहीं मिला।

मुझे लगता है कि वर्तमान सबसे अच्छा समाधान कई स्रोतों (Apple, CocoTron, GnuStep) से स्रोत कोड लेना है और इसे एक साथ विलय करना है जो आपको आवश्यक है। आपको बहुत सारे स्रोत पढ़ने होंगे लेकिन यह अंतिम परिणाम के लायक होगा।


2
समूह पर आपके प्रश्न का उत्तर नहीं देने के लिए खेद है, संक्षेप में: एपीएसएल बेकार है और रनटाइम और सीएफ दोनों उनके अधीन हैं।
क्रिस्टोफर लॉयड

1
APSL के बारे में क्या बेकार है? ( Openource.apple.com/license/apsl ) यह GPL की तरह आक्रामक नहीं है। यदि आप कवर कोड को संशोधित करते हैं तो आपको उस कोड को उपलब्ध कराना होगा। कवर किया गया कोड कोई भी संशोधन होगा जिसे आप उदाहरण के लिए CoreFoundation करते हैं, लेकिन इसमें आपको वास्तविक कार्यक्रम शामिल नहीं होगा। आपको अपने संशोधनों को स्पष्ट रूप से चिह्नित करने की आवश्यकता है। यह एक उपद्रव है लेकिन ऐप्पल के अत्यधिक परीक्षण कोड का उपयोग करने के व्यापार-मूल्य के लायक नहीं है?
मैथ्यू कॉर्मियर

8
मुझे नहीं लगता कि आप समझते हैं कि समाप्ति कैसे काम करती है, यह ऐसा कुछ नहीं है जो वे सभी को एक साथ कर सकते हैं, कोड को शर्तों के तहत लाइसेंस दिया जाता है और उन शर्तों के तहत अनिश्चित काल तक प्रयोग किया जाता है। क्या हो सकता है कि Apple उन व्यक्तियों / कंपनियों को बाहर कर सकता है जो सोचते हैं कि उन्होंने लाइसेंस का उल्लंघन किया है। एफएसएफ पहले से ही जीपीएल उल्लंघन के साथ ऐसा करता है, आपको वास्तव में लगता है कि ऐप्पल एफएसएफ की तुलना में डेवलपर्स के लिए अधिक अनुकूल है? अगर आपको लगता है कि शर्तें असंगत और निरर्थक हैं, तो मुझे यकीन है कि आप Apple को कानूनी तौर पर उन्हें बाहर निकालने के लिए मना सकते हैं।
क्रिस्टोफर लॉयड

8
यह ध्यान दिया जाना चाहिए कि ऐप्पल ने एफएसएफ के साथ एपीएसएल में बदलाव पर काम किया और एफएसएफ एपीएलएसएल संस्करण 2.0 को एक मुफ्त सॉफ्टवेयर लाइसेंस मानता है। gnu.org/philosophy/apsl.html
सीन

3
मेरे नजरिए से (जैसा कि किसी ने मालिकाना उत्पाद में बीएसडी, एलजीपीएल, एमआईटी और अन्य लाइसेंस के साथ सौदा किया है) एप्पल का लाइसेंस जीपीएल की तुलना में कम प्रतिबंधात्मक है - जो स्पष्ट रूप से बट में दर्द है। अगर मुझे बीएसडी, एमआईटी, या एपीएसएल मिल सकता है, तो मैं जीपीएल के बजाय उन लोगों के साथ काम करूंगा।
लॉयड सार्जेंट

8

मुझे पता है कि यह एक बहुत पुरानी पोस्ट है, लेकिन मुझे एक समाधान मिल गया है जो केवल हाल ही में उपलब्ध हुआ है और विंडोज प्लेटफॉर्म पर लगभग सभी उद्देश्य-सी 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

मैंने अभी तक इसका प्रयास नहीं किया है, लेकिन मैं कल्पना करता हूं कि यदि आप ऑब्जेक्टिव-सी ++ में अपने ऑब्जेक्टिव-सी क्लासेस को सबसे अधिक संभव लेयर पर लपेटते हैं, तो आपको मूल विंडोज जीयूआई सी ++ और ऑब्जेक्टिव-सी सभी को एक विंडोज एप्लीकेशन में सफलतापूर्वक इंटर-कनेक्ट करने में सक्षम होना चाहिए।


7

की जाँच करें WinObjC :

https://github.com/Microsoft/WinObjC

यह Microsoft द्वारा एक आधिकारिक, ओपन-सोर्स प्रोजेक्ट है जो विज़ुअल स्टूडियो + विंडोज के साथ एकीकृत है।


6

यदि आप केवल प्रयोग करना चाहते हैं, तो यहां .NET (विंडोज) के लिए एक उद्देश्य-सी संकलक है: qckapp


यह प्रोग्राम ऑस के साथ संकलन नहीं कर सका। NSLog (@ "परीक्षण ... \ n..1 \ n ... 2 \ n .... 3"); [पूल नाली]; वापसी 0; }
किरन केजे

5

आप एक उद्देश्य सी संकलक प्राप्त कर सकते हैं जो विंडोज के साथ काम करेगा और यहां विजुअल स्टूडियो 2008 \ 2010 के साथ अच्छा खेलेगा।

ओपन-सी फ्लेइट

बस नवीनतम स्रोत डाउनलोड करें। आपको सीएफ-लाइट के सभी निर्माण की आवश्यकता नहीं है एक समाधान है जिसे ओब्जेक्ट्सन कहा जाता है। आपको शामिल पथों में से कुछ को ठीक करने की आवश्यकता होगी, लेकिन फिर यह ठीक ठीक निर्माण करेगा। यहां तक ​​कि एक परीक्षण परियोजना भी शामिल है ताकि आप कुछ उद्देश्य-सी .m फ़ाइलों को संकलित और दृश्य स्टूडियो में काम करते हुए देख सकें। एक दुखद बात यह है कि यह केवल Win32 नहीं x64 के साथ काम करता है। कुछ असेंबली कोड हैं जिन्हें इसके समर्थन के लिए x64 के लिए लिखना होगा।


मैंने विजुअल स्टूडियो 2013 का उपयोग करके इस परियोजना को डाउनलोड और चलाया और मुझे इस त्रुटि के 30 उदाहरण मिले। 64 त्रुटि C2632: 'चार' के बाद 'चार' अवैध है C: \ opencflite-code-248-trunk \ n में शामिल हैं \ c99 \ stdbool.h 20 1 objc
एडम

4

ऑब्जेक्टिव सी 2.0 को विंडोज में पोर्ट करने का हालिया प्रयास सब्जेक्टिव है प्रोजेक्ट है।

Readme से:

सब्जेक्टिव विंडोज के लिए ARC सपोर्ट के साथ ऑब्जेक्टिव C 2.0 लाने का एक प्रयास है।

यह प्रोजेक्ट objc4-532.2, ऑब्जेक्टिव C रनटाइम का एक कांटा है जो OS X 10.8.5 के साथ जहाज करता है। पोर्ट को OS X पर MinGW लिंकर के साथ संयुक्त llvm-clang का उपयोग करके क्रॉस-संकलित किया जा सकता है।

कुछ निश्चित सीमाएँ हैं, जिनमें से कई अतिरिक्त काम का विषय हैं, जबकि अन्य, जैसे अपवाद और ब्लॉक, 3 जी परियोजनाओं में अधिक गंभीर काम पर निर्भर हैं। सीमाएँ हैं:

• 32-बिट केवल - 64-बिट चल रहा है

• स्टेटिक लिंकिंग केवल - डायनेमिक लिंकिंग चल रही है

• कोई बंद / ब्लॉक - जब तक कि libdispatch विंडोज पर उनका समर्थन नहीं करता है

• कोई अपवाद नहीं - जब तक कि क्लैंग विंडोज पर उनका समर्थन नहीं करती

• कोई पुरानी शैली जीसी - जब तक कोई परवाह नहीं करता है ...

• इंटर्नल: कोई vtables, कोई gdb सपोर्ट नहीं, सिर्फ प्लेन मॉलोक, कोई प्रीओप्टिमाइजेशन नहीं - इनमें से कुछ चीजें 64-बिट बिल्ड के तहत उपलब्ध होंगी।

• वर्तमान में एक पैच क्लैंग कंपाइलर की आवश्यकता होती है; पैच जोड़ता है -fobjc-runtime = सबज ध्वज

परियोजना पर उपलब्ध है Github , और वहाँ भी एक है धागा Cocotron समूह पर प्रगति और का सामना करना पड़ा मुद्दों में से कुछ की रूपरेखा।



0

यदि आप Visual Studio वातावरण के साथ सहज हैं,

लघु परियोजना: gcc के साथ jGRASP बड़ी परियोजना: Cocotron

मैंने सुना है कि एमुलेटर हैं, लेकिन मुझे केवल Apple II एमुलेटर http://virtualapple.org/ मिल सकता है । यह खेलों तक सीमित लगता है।


0

सबसे पहले, GNUStep टूल्स के बारे में भूल जाएं । न तो ProjectManager और न ही ProjectCenter को IDE कहा जा सकता है। सभी उचित सम्मान के साथ, ऐसा लगता है कि GNUStep परियोजना के लोग 80-एस के अंत में फंस गए हैं (जो कि जब नेक्स्टस्ट ने पहली बार दिखाई थी)।

शक्ति

ctagsR771 के बाद से ऑब्जेक्टिव-सी का समर्थन करें (पूर्व-रिलीज़ 5.9 संस्करण को चुनना सुनिश्चित करें और --langmap=ObjectiveC:.m.hकमांड लाइन में जोड़ें , यहां देखें ), इसलिए आपके पास सभ्य कोड पूरा / टैग नेविगेशन होगा।

यहाँ एक छोटी है howto विम tagbar प्लगइन करने के लिए ऑब्जेक्टिव-सी समर्थन जोड़ने पर।

Emacs

वही etagsआधुनिक Emacsen के साथ शिप करने के लिए लागू होता है , इसलिए आप Emacs Objective C Mode से शुरू कर सकते हैं । YASnippet उपयोगी टेम्पलेट प्रदान करेगा:

Yasnippet objc- मोड

और यदि आप मूल टैग-आधारित कोड पूरा होने से अधिक बुद्धिमान कुछ चाहते हैं, तो इस प्रश्न पर एक नज़र डालें ।

ग्रहण

सीडीटीMakefile समर्थित परियोजनाओं का समर्थन करता है:

यहां छवि विवरण दर्ज करें

- इसलिए तकनीकी रूप से आप अपने ऑब्जेक्टिव-सी प्रोजेक्ट को बॉक्स से बाहर कर सकते हैं (विंडोज पर, आपको साइगविन या मिनगव टूलकिन की आवश्यकता होगी )। एकमात्र समस्या कोड संपादक है जो कि शुद्ध सी कोड के बारे में त्रुटियों के बारे में बहुत सारी रिपोर्ट करेगा (ऑन-द-फ्लाई कोड चेक को बंद किया जा सकता है, लेकिन फिर भी ...)। यदि आप उचित वाक्यविन्यास हाइलाइटिंग चाहते हैं, तो आप अपने ग्रहण में एक्लेम जोड़ सकते हैं और ग्रहण और विम दोनों की सभी अच्छी विशेषताओं का आनंद ले सकते हैं (ऊपर देखें) हैं।

एक और होनहार ग्रहण प्लगइन Colorer है , लेकिन यह अभी तक उद्देश्य-सी का समर्थन नहीं करता है। एक सुविधा अनुरोध दर्ज करने के लिए स्वतंत्र महसूस करें।

SlickEdit

SlickEdit , एक महान IDE की अन्य विशेषताओं के साथ, उद्देश्य-सी का समर्थन करता है। हालांकि यह सीखने के लिए काफी जटिल है (हालांकि Emacs जितना जटिल नहीं है), मेरा मानना ​​है कि यह आपका सबसे अच्छा विकल्प है बशर्ते आपको इसे खरीदने में कोई दिक्कत न हो (कीमत काफी सस्ती है)।

इसके अतिरिक्त, इसमें एक ग्रहण प्लगइन है जिसे स्टैंड-अलोन संपादक के विकल्प के रूप में इस्तेमाल किया जा सकता है।

डेवलप

अफवाह यह है कि वहाँ एक केडीवल्यूड पैच (15 साल पुराना है, लेकिन कौन परवाह करता है?) मौजूद है। मैं व्यक्तिगत रूप से नहीं लगता कि डेवलप की तुलना में सुविधा बेहतर है Emacsen , तो मैं यह कोशिश कर परेशान नहीं होता।


उपरोक्त लिनक्स पर ऑब्जेक्टिव-सी विकास पर भी लागू होता है, क्योंकि उल्लिखित सभी उपकरण कम या ज्यादा पोर्टेबल हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.