Apa cara terbaik untuk menulis Objective-C pada platform Windows?
Cygwin dan gcc? Apakah ada cara saya bisa mengintegrasikan ini ke dalam Visual Studio?
Sejalan dengan itu - apakah ada saran tentang bagaimana menghubungkan dan menggunakan SDK Windows untuk sesuatu seperti ini. Ini binatang yang berbeda tapi saya tahu saya bisa menulis perakitan dan tautan di Windows DLL memberi saya aksesibilitas ke panggilan itu, tetapi saya tidak tahu bagaimana melakukan ini tanpa googling dan mendapatkan petunjuk sedikit demi sedikit.
Adakah yang mengetahui adanya sumber daring atau buku yang bagus untuk melakukan atau menjelaskan hal-hal semacam ini?
Jawaban:
Memperluas dua jawaban sebelumnya, jika Anda hanya menginginkan Objective-C tetapi tidak ada kerangka kerja Cocoa, maka gcc akan bekerja pada platform apa pun. Anda dapat menggunakannya melalui Cygwin atau mendapatkan MinGW. Namun, jika Anda menginginkan kerangka kerja Kakao, atau setidaknya bagian yang masuk akal, maka GNUStep dan Cocotron adalah taruhan terbaik Anda.
Cocotron mengimplementasikan banyak hal yang tidak dimiliki GNUStep, seperti CoreGraphics dan CoreData, meskipun saya tidak dapat menjamin seberapa lengkap implementasi mereka pada kerangka kerja tertentu. Tujuan mereka adalah untuk membuat Cocotron tetap up to date dengan versi terbaru OS X sehingga setiap program OS X dapat berjalan di Windows. Karena GNUStep biasanya menggunakan versi terbaru gcc, mereka juga menambahkan dukungan untuk Objective-C ++ dan banyak fitur Objective-C 2.0.
Saya belum menguji fitur-fitur itu dengan GNUStep, tetapi jika Anda menggunakan versi gcc yang cukup baru, Anda mungkin dapat menggunakannya. Saya tidak dapat menggunakan Objective-C ++ dengan GNUStep beberapa tahun yang lalu. Namun, GNUStep melakukan kompilasi dari hampir semua platform. Cocotron adalah proyek yang sangat mac-centric. Meskipun mungkin untuk mengkompilasinya di platform lain, ia datang file proyek XCode, bukan makefiles, jadi Anda hanya dapat mengkompilasi kerangka kerjanya di luar kotak pada OS X. Ini juga dilengkapi dengan instruksi tentang kompilasi aplikasi Windows pada XCode, tetapi tidak platform lain. Pada dasarnya, mungkin untuk mengatur lingkungan pengembangan Windows untuk Cocotron, tetapi tidak semudah mengatur satu untuk GNUStep, dan Anda akan melakukannya sendiri, jadi GNUStep jelas merupakan cara untuk pergi jika Anda mengembangkan pada Windows bukan hanya untuk Windows.
Untuk apa nilainya, Cocotron dilisensikan di bawah lisensi MIT, dan GNUStep dilisensikan di bawah LGPL.
sumber
Anda dapat menggunakan Objective C di dalam lingkungan Windows. Jika Anda mengikuti langkah-langkah ini, itu akan berfungsi dengan baik:
GNUstep MSYS Subsystem
(MSYS untuk GNUstep),GNUstep Core
(Libraries for GNUstep), danGNUstep Devel
C:\GNUstep\GNUstep\System\Library\Headers\Foundation
1 dan pastikanFoundation.h
adagcc -v
untuk memeriksa apakahGNUstep MSYS
sudah diinstal dengan benar (jika Anda mendapatkan file tidak ditemukan kesalahan, pastikanbin
folderGNUstep MSYS
ada di AndaPATH
)Gunakan program "Hello World" sederhana ini untuk menguji fungsionalitas GNUstep:
Kembali ke command prompt dan
cd
ke tempat Anda menyimpan program "Hello World" dan kemudian kompilasi: 2Akhirnya, dari command prompt, ketik
helloworld
untuk menjalankannyaSemua yang terbaik, dan bersenang-senang dengan Objective-C!
CATATAN :
sumber
gcc -o helloworld...
untukc:\gnustep\bin\gcc -o helloworld...
dan bekerja. Alternatifnya adalah memodifikasi Variabel Lingkungan yang tidak saya lakukan karena saya hanya melihat-lihat Objective C. Terima kasih kepada teshguru untuk jawaban yang tepat.Juga:
http://www.cocotron.org/
sumber
WinObjC? Windows Bridge untuk iOS (sebelumnya dikenal sebagai 'Project Islandwood').
Windows Bridge untuk iOS (juga disebut sebagai WinObjC) adalah proyek open source Microsoft yang menyediakan lingkungan pengembangan Objective-C untuk Visual Studio / Windows. Selain itu, WinObjC menyediakan dukungan untuk kompatibilitas iOS API. Sementara rilis final akan terjadi nanti musim gugur ini (memungkinkan jembatan untuk mengambil keuntungan dari kemampuan tooling baru yang akan dikirimkan dengan Visual Studio 2015 Update mendatang),
Jembatan tersedia untuk komunitas sumber terbuka sekarang dalam kondisi saat ini. Antara sekarang dan musim gugur. Jembatan iOS sebagai proyek sumber terbuka di bawah lisensi MIT. Mengingat ambisi proyek, membuatnya mudah bagi pengembang iOS untuk membangun dan menjalankan aplikasi di Windows.
Salmaan Ahmed memiliki posting mendalam tentang Windows Bridge untuk iOS http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/ membahas kompiler, runtime, integrasi IDE, dan apa jembatan itu dan tidak. Yang terbaik dari semuanya, kode sumber untuk jembatan iOS aktif di GitHub sekarang.
Jembatan iOS mendukung aplikasi Windows 8.1 dan Windows 10 yang dibangun untuk arsitektur prosesor x86 dan x64, dan segera kami akan menambahkan optimisasi kompiler dan dukungan untuk ARM, yang menambahkan dukungan seluler.
sumber
Saya memiliki perasaan campur aduk tentang proyek Cocotron. Saya senang mereka merilis kode sumber dan berbagi tetapi saya tidak merasa bahwa mereka melakukan hal-hal dengan cara termudah.
Contohnya.
Apple telah merilis kode sumber ke runtime objektif-c , yang mencakup properti dan pengumpulan sampah. Proyek Cocotron memiliki implementasi runtime objektif-c sendiri. Kenapa repot-repot menduplikasi usahanya? Bahkan ada file Proyek Visual Studio yang dapat digunakan untuk membangun file objc.dll. Atau jika Anda benar-benar malas, Anda bisa menyalin file DLL dari instalasi Safari di Windows.
Mereka juga tidak repot-repot memanfaatkan CoreFoundation, yang juga bersumber terbuka oleh Apple. Saya memposting pertanyaan tentang ini tetapi tidak menerima jawaban.
Saya pikir solusi terbaik saat ini adalah mengambil kode sumber dari berbagai sumber (Apple, CocoTron, GnuStep) dan menggabungkannya bersama-sama dengan apa yang Anda butuhkan. Anda harus membaca banyak sumber tetapi hasilnya sepadan dengan hasilnya.
sumber
Saya sadar ini adalah posting yang sangat lama, tetapi saya telah menemukan solusi yang baru saja tersedia dan memungkinkan hampir semua fitur Objective-C 2.0 pada platform Windows.
Dengan munculnya gcc 4.6, dukungan untuk fitur bahasa Objective-C 2.0 (blok, sintaksis titik, properti yang disintesis, dll) telah ditambahkan ke kompiler Objective-C (lihat catatan rilis untuk detail lengkap). Runtime mereka juga telah diperbarui agar berfungsi hampir identik dengan runtime Objective-C 2.0 milik Apple. Singkatnya ini berarti bahwa (hampir) program apa pun yang akan dikompilasi secara sah dengan Dentang pada Mac juga akan dikompilasi dengan gcc 4.6 tanpa modifikasi.
Sebagai catatan tambahan, satu fitur yang tidak tersedia adalah kamus / array / dll literal karena mereka semua hard-coded ke Dentang untuk menggunakan NSDictionary, NSArray, NSNumber, dll kelas Apple.
Namun, jika Anda senang hidup tanpa kerangka kerja Apple yang luas, Anda bisa. Seperti disebutkan dalam jawaban lain, GNUStep dan Cocotron menyediakan versi pustaka kelas Apple yang dimodifikasi, atau Anda dapat menulis sendiri (opsi pilihan saya).
MinGW adalah salah satu cara untuk mendapatkan GCC 4.6 di platform Windows, dan dapat diunduh dari situs web The MinGW . Pastikan ketika Anda menginstalnya Anda menyertakan instalasi C, C ++, Objective-C dan Objective-C ++. Sementara opsional, saya juga menyarankan menginstal lingkungan MSYS.
Setelah diinstal, sumber Objective-C 2.0 dapat dikompilasi dengan:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW juga menyertakan dukungan untuk mengkompilasi aplikasi Windows GUI asli dengan
-mwindows
flag. Sebagai contoh:g++ -mwindows MyFile.cpp
Saya belum mencobanya, tapi saya bayangkan jika Anda membungkus kelas Objective-C Anda di Objective-C ++ pada lapisan tertinggi yang mungkin, Anda harus dapat berhasil menjalin Windows GUI C ++ asli dan Objective-C semua dalam satu Aplikasi Windows.
sumber
Lihat WinObjC :
https://github.com/Microsoft/WinObjC
Ini adalah proyek sumber terbuka resmi oleh Microsoft yang terintegrasi dengan Visual Studio + Windows.
sumber
Jika Anda hanya ingin bereksperimen, ada kompiler Objective-C untuk .NET (Windows) di sini: qckapp
sumber
Anda bisa mendapatkan kompiler c objektif yang akan bekerja dengan Windows dan bermain bagus dengan Visual Studio 2008 \ 2010 di sini.
buka-c flite
Cukup unduh sumber terbaru. Anda tidak perlu membangun semua CF-Lite ada solusi yang disebut objc.sln. Anda perlu memperbaiki beberapa jalur sertakan tetapi kemudian akan membangunnya dengan baik. Bahkan ada proyek uji yang disertakan sehingga Anda dapat melihat beberapa file obyektif-c. M sedang dikompilasi dan bekerja di visual studio. Satu hal yang menyedihkan adalah ini hanya bekerja dengan Win32 bukan x64. Ada beberapa kode assembly yang perlu ditulis untuk x64 agar dapat mendukungnya.
sumber
Upaya terbaru untuk mem-porting Objective C 2.0 ke Windows adalah proyek Subyektif .
Dari Readme:
Proyek ini tersedia di Github , dan ada juga utas di Cocotron Group yang menguraikan beberapa kemajuan dan masalah yang dihadapi.
sumber
Dapatkan GNUStep di sini
Dapatkan MINGW di sini
Instal MINGW Instal GNUStep Lalu Uji
sumber
Jika Anda nyaman dengan lingkungan Visual Studio,
Proyek kecil: jGRASP dengan gcc Proyek besar: Cocotron
Saya mendengar ada emulator, tetapi saya hanya dapat menemukan Apple II Emulator http://virtualapple.org/ . Sepertinya terbatas pada game.
sumber
Pertama-tama, lupakan alat GNUStep . Baik ProjectManager maupun ProjectCenter tidak dapat disebut IDE. Dengan segala hormat, sepertinya orang-orang dari proyek GNUStep terjebak di akhir 80-an (saat itulah NeXTSTEP pertama kali muncul).
Vim
ctags
mendukung Objective-C sejak r771 (pastikan untuk memilih versi pra-rilis 5.9 dan tambahkan--langmap=ObjectiveC:.m.h
ke baris perintah, lihat di sini ), sehingga Anda akan memiliki navigasi penyelesaian tag / tag yang layak.Berikut adalah singkat howto pada menambahkan dukungan Objective-C untuk Vim Tagbar Plugin.
Emacs
Hal yang sama berlaku untuk
etags
dikirimkan dengan Emacsen modern, sehingga Anda dapat mulai dengan Mode C Tujuan Emacs . YASnippet akan menyediakan templat yang berguna:dan jika Anda menginginkan sesuatu yang lebih cerdas daripada penyelesaian kode berbasis tag dasar , lihat pertanyaan ini .
Gerhana
CDT mendukung
Makefile
proyek berbasis:- jadi secara teknis Anda dapat membangun proyek Objective-C Anda di luar kotak (pada Windows, Anda memerlukan Cygwin atau MinGW toolchain). Satu-satunya masalah adalah editor kode yang akan melaporkan banyak kesalahan terhadap apa yang dianggapnya adalah kode C murni (pengecekan kode on-the-fly dapat dimatikan, tetapi masih ...). Jika Anda ingin penyorotan sintaksis yang tepat, Anda dapat menambahkan Eclim ke Eclipse Anda dan menikmati semua fitur baik Eclipse dan Vim (lihat di atas).
Plugin Eclipse yang menjanjikan lainnya adalah Colorer , tetapi belum mendukung Objective-C. Jangan ragu untuk mengajukan permintaan fitur.
SlickEdit
SlickEdit , antara fitur-fitur lainnya dari IDE besar, apakah dukungan Objective-C. Meskipun cukup rumit untuk dipelajari (tidak serumit Emacs), saya percaya ini adalah pilihan terbaik Anda asalkan Anda tidak keberatan membelinya (harganya cukup terjangkau).
Selain itu, ia memiliki plugin Eclipse yang dapat digunakan sebagai alternatif untuk editor yang berdiri sendiri.
KDevelop
Rumor mengatakan ada patch KDevelop (15 tahun, tapi siapa yang peduli?). Saya pribadi tidak berpikir KDevelop lebih unggul daripada Emacsen , jadi saya tidak akan repot mencobanya.
Hal di atas juga berlaku untuk pengembangan Objective-C di Linux, karena semua alat yang disebutkan lebih portabel.
sumber