سؤال

ما يمكن أن يكون أفضل طريقة لكتابة الهدف-C على منصة ويندوز?

Cygwin و دول مجلس التعاون الخليجي ؟ هل هناك طريقة أستطيع بطريقة أو بأخرى دمج هذا في Visual Studio?

على طول تلك الخطوط - هل هناك أي اقتراحات بشأن كيفية ربط في استخدام Windows SDK عن شيء مثل هذا.مختلف الوحش ولكن أعرف أنني أستطيع أن أكتب الجمعية الرابط في Windows Dll تعطيني الوصول إلى تلك المكالمات ولكن لا أعرف كيفية القيام بذلك دون البحث في قوقل والحصول على جزئية الاتجاهات.

هو أي شخص على علم جيد على الإنترنت أو كتاب مورد أو شرح هذه الأنواع من الأشياء ؟

هل كانت مفيدة؟

المحلول

التوسع في اثنين من الأجوبة السابقة ، إذا كنت تريد فقط الهدف-C ولكن ليس أي من الكاكاو الأطر ، ثم دول مجلس التعاون الخليجي سوف يعمل على أي منصة.يمكنك استخدامه من خلال Cygwin أو الحصول على مينغو.ومع ذلك ، إذا كنت تريد الكاكاو أطر أو على الأقل معقولة فرعية منها ، ثم GNUStep و Cocotron هي أفضل الرهانات الخاصة بك.

Cocotron تنفذ الكثير من الاشياء التي GNUStep لا مثل CoreGraphics و كوريداتا ، على الرغم من أنني لا يمكن أن يشهدوا على كيفية استكمال تنفيذها في إطار محدد.هدفهم هو الحفاظ على Cocotron ما يصل إلى موعد مع أحدث إصدار من نظام التشغيل OS X بحيث أن أي قابلة للحياة OS X تشغيل البرنامج على ويندوز.لأن GNUStep عادة يستخدم أحدث إصدار من دول مجلس التعاون الخليجي ، كما أنها إضافة في دعم الهدف-C++ و الكثير من الهدف-C 2.0 الميزات.

أنا لم تختبر هذه الميزات مع GNUStep, ولكن إذا كنت تستخدم بما فيه الكفاية نسخة جديدة من دول مجلس التعاون الخليجي ، قد تكون قادرة على استخدامها.لم أكن قادرا على استخدام الهدف-C++ مع GNUStep قبل بضع سنوات.ومع ذلك ، GNUStep لا تجمع من مجرد عن أي منصة.Cocotron جدا mac تتمحور حول المشروع.على الرغم من أنه ربما من الممكن أن تجمع على منصات أخرى ، ويأتي المشروع كسكودي الملفات لا makefiles حيث يمكنك تجميع أطر من خارج منطقة الجزاء على OS X.كما يأتي مع تعليمات حول تجميع تطبيقات ويندوز على كسكودي, ولكن ليس أي منصة أخرى.أساسيا, انها على الارجح الممكن إعداد Windows تطوير بيئة Cocotron ، ولكن ليس من السهل كما وضع واحد لمدة GNUStep, وعليك أن تكون لوحدك حتى GNUStep هو بالتأكيد الطريق للذهاب إذا كنت في وضع على ويندوز بدلا من مجرد ويندوز.

على ما يستحق ، Cocotron مرخص بموجب ترخيص معهد ماساتشوستس للتكنولوجيا ، GNUStep تحت رخصة LGPL.

نصائح أخرى

لك يمكن استخدام الهدف C داخل بيئة ويندوز.إذا كنت تتبع هذه الخطوات ، ينبغي أن يكون العمل على ما يرام:

  1. زيارة GNUstep الموقع و تحميل GNUstep MSYS Subsystem (MSYS على GNUstep), 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 لتشغيله

كل التوفيق و المتعة مع الهدف-C!


ملاحظات:

  1. أنا استخدم مسار التثبيت الافتراضي - ضبط سطر الأوامر الخاص بك وفقا لذلك
  2. ضمان مسار المجلد لك مماثلة لإزالة الألغام ، وإلا سوف تحصل على خطأ

أيضا:

على Cocotron هو مشروع مفتوح المصدر يهدف إلى تطبيق عبر منصة الهدف-C API مماثلة لتلك التي وصفها Apple Inc.'s الكاكاو الوثائق.وهذا يشمل AppKit, مؤسسة, Objective-C وقت التشغيل دعم واجهات برمجة التطبيقات مثل CoreGraphics و CoreFoundation.

http://www.cocotron.org/

WinObjC?جسر ويندوز لدائرة الرقابة الداخلية (المعروف سابقا باسم 'المشروع Islandwood').

جسر ويندوز لدائرة الرقابة الداخلية (كما يشار إلى WinObjC) هو Microsoft مشروع مفتوح المصدر الذي يوفر الهدف-ج بيئة التطوير Visual Studio/ويندوز.وبالإضافة إلى ذلك ، WinObjC يوفر الدعم لدائرة الرقابة الداخلية API التوافق.في حين أن الإصدار النهائي سيحدث في وقت لاحق من خريف هذا العام (يسمح الجسر إلى الاستفادة من الأدوات الجديدة القدرات التي سوف السفينة مع القادم Visual Studio 2015 تحديث) ،

الجسر هو متاح إلى مجتمع المصدر المفتوح الآن في حالته الراهنة.من الآن وحتى الخريف.دائرة الرقابة الداخلية الجسر مشروع مفتوح المصدر تحت رخصة MIT.نظرا الطموح المشروع ، مما يجعل من السهل بالنسبة iOS للمطورين لبناء وتشغيل التطبيقات على ويندوز.

سلمان أحمد في عمق آخر على الجسر ويندوز دائرة الرقابة الداخلية http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ مناقشة مترجم, runtime, IDE التكامل ، وما الجسر هو ليس كذلك.أفضل من كل شيء ، مصدر رمز الجسر دائرة الرقابة الداخلية مباشرة ، جيثب الآن.

دائرة الرقابة الداخلية جسر يدعم كل من ويندوز 8.1 و ويندوز 10 تطبيقات بنيت x86 و x64 المعالج أبنية و قريبا سوف نقوم بإضافة مترجم تحسينات ودعم الذراع ، الذي يضيف دعم المحمول.

لدي مشاعر مختلطة حول Cocotron المشروع.أنا سعيد أنهم الإفراج عن رمز المصدر وتبادل ولكن لا يشعرون بأنهم يفعلون أشياء أسهل طريقة.

أمثلة.
أبل أصدرت التعليمات البرمجية المصدر إلى الهدف-c وقت التشغيل, والتي تشمل خصائص وجمع القمامة.على Cocotron المشروع ومع ذلك قد الخاصة بهم تنفيذ الهدف-c وقت التشغيل.لماذا يكلف نفسه عناء تكرار الجهد ؟ بل هناك مشروع Visual Studio الملفات التي يمكن استخدامها لبناء objc.dll الملف.أو إذا كنت كسول حقا, يمكنك فقط نسخ ملف DLL من تثبيت سفاري على ويندوز.

كما لم يكلف نفسه عناء النفوذ CoreFoundation ، الذي هو أيضا مفتوح المصدر من قبل شركة آبل.نشرت لي السؤال عن هذا ولكن لم تتلقى جوابا.

أعتقد أن أفضل حل هو أن تأخذ التعليمات البرمجية المصدر من مصادر متعددة (التفاح ، CocoTron, GnuStep) ودمجها معا إلى ما تحتاج إليه.عليك أن تقرأ الكثير من المصدر ولكن سيكون من يستحق النتيجة النهائية.

أنا على علم أن هذا هو آخر العمر, ولكن لقد وجدت الحل الذي قد تصبح متوفرة إلا في الآونة الأخيرة و تمكن ما يقرب من كل الهدف-C 2.0 الميزات على منصة ويندوز.

مع ظهور دول مجلس التعاون الخليجي 4.6, دعم الهدف-C 2.0 ميزات اللغة (كتل دوت الجملة, توليفها خصائص ، إلخ) إضافة إلى الهدف-ج مترجم (انظر ملاحظات الإصدار للحصول على التفاصيل الكاملة).بهم وقت التشغيل كما تم تحديث إلى عمل مماثل تقريبا إلى أبل الخاصة الهدف-C 2.0 وقت التشغيل.باختصار هذا يعني أن (تقريبا) أي البرنامج الذي سوف شرعيا ترجمة مع رنة على ماك أيضا ترجمة مع دول مجلس التعاون الخليجي 4.6 دون تعديل.

كما الجانب ملاحظة واحدة الميزة التي لا تتوفر هو القاموس/مجموعة/الخ حرفية كما هي جميع ترميز-الثابت في رنة استخدام أبل NSDictionary, NSArray ، NSNumber ، الخ الطبقات.

ومع ذلك ، إذا كنت سعيدا أن يعيش دون أبل واسعة أطر يمكنك.كما ورد في إجابات أخرى ، GNUStep و Cocotron تقديم نسخ معدلة من أبل مكتبات فئة أو يمكنك كتابة الخاصة بك (بلدي الخيار المفضل).

مينغو هو طريقة واحدة للحصول على دول مجلس التعاون الخليجي 4.6 على منصة ويندوز ، و يمكن تحميلها من على مينغو الموقع.تأكد عند تثبيته هل تشمل تركيب C, C++, Objective-C و الهدف-C++.في حين اختياري ، أود أن أقترح أيضا تثبيت MSYS البيئة.

تثبيت مرة واحدة, Objective-C 2.0 المصدر يمكن جمعها مع:

gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)

مينغو يشمل أيضا دعم تجميع الأصلي واجهة المستخدم الرسومية لتطبيقات ويندوز مع -mwindows العلم.على سبيل المثال:

g++ -mwindows MyFile.cpp

أنا لم أحاول بعد لكن أتصور لو كنت التفاف الهدف الخاص بك C-دروس في الهدف-C++ في أعلى طبقة ، يجب أن تكون قادرا على بنجاح تتشابك الأصلي ويندوز واجهة المستخدم الرسومية C++ و الهدف-C كل في واحد التطبيق Windows.

تحقق من WinObjC:

https://github.com/Microsoft/WinObjC

انها رسمية مفتوحة المصدر المشروع من قبل مايكروسوفت أن يتكامل مع Visual Studio + ويندوز.

إذا كنت ترغب فقط في التجربة ، هناك هدف-ج مترجم .صافي (ويندوز) هنا: qckapp

يمكنك الحصول على موضوعي التحويل البرمجي c التي سوف تعمل مع ويندوز واللعب الجميل مع Visual Studio 2008\2010 هنا.

مفتوح ج flite

مجرد تحميل أحدث المصدر.أنت لا تحتاج إلى بناء جميع CF-Lite هناك حل تسمى objc.sln.سوف تحتاج إلى إصلاح بعض وتشمل مسارات ولكن بعد ذلك سيكون بناء على ما يرام.بل هناك اختبار المشروع شملت حتى تتمكن من رؤية بعض objective-c .m الملفات التي يتم جمعها والعمل في visual studio.واحد الشيء المحزن هو أنه يعمل فقط مع Win32 لا x64.هناك بعض رمز التجميع التي سوف تحتاج إلى أن تكون مكتوبة إلى x64 من أجل أن تدعم ذلك.

مؤخرا محاولة ميناء الهدف C 2.0 Windows هو ذاتية المشروع.

من التمهيدي:

موضوعي هو محاولة تحقيق الهدف C 2.0 مع قوس الدعم يقوم نظام ويندوز.

هذا المشروع هو شوكة في objc4-532.2 الهدف C وقت التشغيل التي يأتي مع نظام التشغيل OS X 10.8.5.ميناء يمكن أن يكون عبر تجميعها على OS X باستخدام llvm-رنة جنبا إلى جنب مع مينغو رابط.

هناك بعض القيود كثيرة منها مسألة إضافية العمل ، في حين أن آخرين مثل الاستثناءات كتل تعتمد على أكثر العمل الجاد في 3rd الطرف المشاريع.القيود:

• 32 بت - 64 بت حاليا

• ثابت ربط فقط - ديناميكية تربط حاليا

• لا الإغلاق/كتل - حتى libdispatch يعتمد عليها في ويندوز

• لا استثناءات حتى رنة يعتمد عليها في ويندوز

• لا النمط القديم GC - حتى شخص يهتم...

• الداخلية:لا vtables لا gdb الدعم عادي فقط malloc لا preoptimizations - بعض من هذه الأمور سوف تكون متاحة تحت 64-بت بناء.

• حاليا مصححة رنة مترجم مطلوب ؛ ويضيف التصحيح -fobjc-وقت التشغيل=subj العلم

المشروع متاح على جيثب, و هناك أيضا الموضوع على Cocotron المجموعة تحدد بعض التقدم المشكلات التي تواجهها.

الحصول على GNUStep هنا

الحصول على مينغو هنا

تثبيت مينغو تثبيت GNUStep ثم اختبار

إذا كنت مرتاحا مع Visual Studio البيئة ،

المشاريع الصغيرة:jGRASP مع دول مجلس التعاون الخليجي المشاريع الكبيرة:Cocotron

سمعت أن هناك برامج محاكاة ، ولكن يمكن أن تجد فقط Apple II المحاكي http://virtualapple.org/.يبدو أن تقتصر على الألعاب.

أولا وقبل كل شيء, نسيان GNUStep أدوات.لا ProjectManager ولا ProjectCenter يمكن أن يسمى IDE.مع كل الاحترام الواجب ، يبدو أن رجال من GNUStep المشروع عالقة في أواخر 80-s (وهو عندما NeXTSTEP ظهرت للمرة الأولى).

همة

ctags دعم الهدف-C منذ r771 (تأكد من اختيار ما قبل الإصدار 5.9 الإصدار إضافة --langmap=ObjectiveC:.m.h إلى سطر الأوامر ، انظر هنا) ، لذلك سوف يكون لائق إنجاز قانون/الوسم الملاحة.

وهنا القصير howto على إضافة الهدف-C الدعم همة tagbar المساعد.

Emacs

الأمر نفسه ينطبق على etags يتم شحنها مع الحديث Emacsen لذا يمكنك أن تبدأ مع Emacs الهدف ج الوضعية ، . YASnippet سوف توفر قوالب مفيدة:

YASnippet objc-mode

وإذا كنت تريد شيئا أكثر ذكاء من الأساسية علامات القائم على إنجاز قانون, خذ نظرة على هذا السؤال.

الكسوف

CDT يدعم Makefileالقائم على المشاريع:

enter image description here

- حتى من الناحية الفنية يمكنك بناء الخاصة بك الهدف-C مشاريع من خارج منطقة الجزاء (على ويندوز, سوف تحتاج Cygwin أو مينغو toolchain).المشكلة الوحيدة هو محرر التعليمات البرمجية التي سوف يقدم الكثير من الأخطاء ضد ما يعتقد هو محض ج كود (on-the-fly رمز التحقق يمكن إيقاف, ولكن لا يزال...).إذا كنت تريد المناسبة تسليط الضوء على بناء الجملة ، يمكنك إضافة Eclim إلى الكسوف والتمتع بجميع ميزات جيدة على حد سواء الكسوف و همة (انظر أعلاه).

آخر واعدة الكسوف البرنامج المساعد هو تلون, لكنه لا يدعم الهدف-C اعتبارا من بعد.لا تتردد في ملف طلب الميزة على الرغم من.

SlickEdit

SlickEdit, بين ميزات أخرى كبير IDE ، لا الدعم الهدف-C.في حين أنها معقدة إلى حد ما أن يتعلم (ليس معقد مثل Emacs على الرغم من) ، وأعتقد أن هذا هو الخيار الأفضل شريطة أن كنت لا تمانع في شراء ذلك (والثمن هو بأسعار معقولة جدا).

بالإضافة إلى ذلك, فقد الكسوف المساعد والتي يمكن استخدامها كبديل مستقل محرر.

KDevelop

يتردد يوجد KDevelop التصحيح (15 سنة, ولكن من يهتم؟).أنا شخصيا لا أعتقد KDevelop هو ميزة متفوقة مقارنة Emacsen, لذا لا تحاول ذلك.


ما سبق ينطبق أيضا على الهدف-C التطوير على لينكس, لأن جميع الأدوات المذكورة هي أكثر أو أقل المحمولة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top