Как лучше написать Objective-C на платформе Windows?
Cygwin и GCC? Есть ли способ, которым я могу как-то интегрировать это в Visual Studio?
Вдоль этих строк - есть ли какие-либо предложения относительно того, как связать и использовать Windows SDK для чего-то подобного. Это другой зверь, но я знаю, что могу написать ассемблер и ссылку в DLL-библиотеках Windows, предоставляя мне доступ к этим вызовам, но я не знаю, как это сделать без поиска в Google и получения пошаговых инструкций.
Кто-нибудь знает о хорошем онлайн или книжном ресурсе, чтобы делать или объяснять такие вещи?
Ответы:
Расширяя два предыдущих ответа, если вы просто хотите Objective-C, но не какую-либо из платформ Cocoa, то 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, вы можете их использовать. Я не мог использовать Objective-C ++ с GNUStep несколько лет назад. Однако GNUStep компилируется практически с любой платформы. Cocotron - очень Mac-ориентированный проект. Хотя, возможно, его можно скомпилировать на других платформах, он поставляется с файлами проекта XCode, а не с make-файлами, поэтому вы можете компилировать его фреймворки только из коробки на OS X. Он также поставляется с инструкциями по компиляции приложений Windows на XCode, но не любая другая платформа. В принципе, возможно, можно настроить среду разработки Windows для Cocotron, но это не так просто, как настроить среду для GNUStep, и вы будете сами по себе, поэтому GNUStep определенно является подходящим вариантом, если вы разрабатываете на Windows в отличие от только для Windows.
Для чего это стоит, Cocotron лицензируется под лицензией MIT, а GNUStep лицензируется под LGPL.
источник
Вы можете использовать Objective C в среде Windows. Если вы выполните следующие действия, все должно работать нормально:
GNUstep MSYS Subsystem
(MSYS для GNUstep),GNUstep Core
(Библиотеки для GNUstep) иGNUstep Devel
C:\GNUstep\GNUstep\System\Library\Headers\Foundation
1 и убедитесь, чтоFoundation.h
существуетgcc -v
чтобы проверить,GNUstep MSYS
правильно ли установлен (если вы получаете сообщение об ошибке «файл не найден», убедитесь, чтоbin
папкаGNUstep MSYS
находится в вашей папкеPATH
)Используйте эту простую программу «Hello World» для проверки функциональности GNUstep:
Вернитесь в командную строку и
cd
туда, где вы сохранили программу «Hello World», а затем скомпилируйте ее: 2Наконец, из командной строки введите
helloworld
для запускаВсего наилучшего, и получайте удовольствие от Objective-C!
ЗАМЕЧАНИЯ :
источник
gcc -o helloworld...
доc:\gnustep\bin\gcc -o helloworld...
и она работала. В качестве альтернативы можно было бы изменить переменные окружения, чего я не делал, так как я просто осматривал цель C. Спасибо тешгуру за точный ответ.Также:
http://www.cocotron.org/
источник
WinObjC? Windows Bridge для iOS (ранее известный как «Project Islandwood»).
Windows Bridge для iOS (также называемый WinObjC) - это проект Microsoft с открытым исходным кодом, который предоставляет среду разработки Objective-C для Visual Studio / Windows. Кроме того, WinObjC обеспечивает поддержку совместимости iOS API. Хотя окончательный выпуск будет выпущен этой осенью (что позволит мосту воспользоваться новыми возможностями инструментов, которые будут поставляться с предстоящим обновлением Visual Studio 2015),
Мост доступен для сообщества с открытым исходным кодом в его текущем состоянии. Между сейчас и осенью. Мост iOS как проект с открытым исходным кодом под лицензией MIT. Учитывая амбиции проекта, облегчить разработчикам iOS создание и запуск приложений на Windows.
У Салмаана Ахмеда есть подробное сообщение о Windows Bridge для iOS http://blogs.windows.com/buildingapps/2015/08/06/windows-bridge-for-ios-lets-open-this-up/, где обсуждается компилятор, среда выполнения, интеграция с IDE, и что такое мост, а что нет. Лучше всего то, что исходный код для моста iOS сейчас доступен на GitHub.
Мост iOS поддерживает приложения Windows 8.1 и Windows 10, созданные для процессорных архитектур x86 и x64, и вскоре мы добавим оптимизацию компилятора и поддержку ARM, которая добавляет мобильную поддержку.
источник
У меня смешанные чувства по поводу проекта Cocotron. Я рад, что они выпускают исходный код и делятся им, но я не чувствую, что они делают вещи самым простым способом.
Примеры.
Apple выпустила исходный код для времени выполнения target-c , который включает свойства и сборку мусора. Однако проект Cocotron имеет собственную реализацию времени выполнения target-c. Зачем дублировать усилия? Существует даже файл проекта Visual Studio, который можно использовать для создания файла objc.dll. Или, если вы действительно ленивы, вы можете просто скопировать файл DLL из установки Safari в Windows.
Они также не удосужились использовать CoreFoundation, который также открыт Apple. Я отправил вопрос об этом, но не получил ответа.
Я думаю, что в настоящее время лучшим решением является получение исходного кода из нескольких источников (Apple, CocoTron, GnuStep) и объединение его вместе с тем, что вам нужно. Вам придется читать много источников, но это будет стоить конечного результата.
источник
Я знаю, что это очень старая статья, но я нашел решение, которое стало доступно только недавно и включает почти все функции Objective-C 2.0 на платформе Windows.
С появлением gcc 4.6 в компилятор Objective-C была добавлена поддержка функций языка Objective C 2.0 (блоки, синтаксис точек, синтезированные свойства и т. Д.) ( Подробности см. В примечаниях к выпуску ). Их среда выполнения также была обновлена, чтобы работать почти так же, как собственная среда выполнения Apple Objective-C 2.0. Короче говоря, это означает, что (почти) любая программа, которая законно скомпилируется с Clang на Mac, также скомпилирует с gcc 4.6 без изменений.
Напомним, что одной из функций, которая недоступна, являются литералы словаря / массива / и т. Д., Поскольку все они жестко запрограммированы в Clang для использования классов Apple NSDictionary, NSArray, NSNumber и т. Д.
Однако, если вы счастливы жить без обширных рамок Apple, вы можете. Как отмечалось в других ответах, GNUStep и Cocotron предоставляют модифицированные версии библиотек классов Apple, или вы можете написать свои собственные (мой предпочтительный вариант).
MinGW - это один из способов получить GCC 4.6 на платформе Windows, который можно загрузить с веб-сайта MinGW . Убедитесь, что при установке вы включаете установку C, C ++, Objective-C и Objective-C ++. Хотя это необязательно, я бы также предложил установить среду MSYS.
После установки источник Objective-C 2.0 может быть скомпилирован с:
gcc MyFile.m -lobjc -std=c99 -fobjc-exceptions -fconstant-string-class=clsname (etc, additional flags, see documentation)
MinGW также включает поддержку компиляции собственных приложений Windows с графическим интерфейсом с
-mwindows
флагом. Например:g++ -mwindows MyFile.cpp
Я еще не пробовал, но я думаю, что если вы поместите свои классы Objective-C в Objective-C ++ на максимально возможный уровень, вы сможете успешно переплетать родной Windows GUI C ++ и Objective-C в одном приложении Windows.
источник
Проверьте WinObjC :
https://github.com/Microsoft/WinObjC
Это официальный проект Microsoft с открытым исходным кодом, который интегрируется с Visual Studio + Windows.
источник
Если вы просто хотите поэкспериментировать, здесь есть компилятор Objective-C для .NET (Windows): qckapp
источник
Вы можете получить объективный компилятор c, который будет работать с Windows и хорошо играть с Visual Studio 2008 \ 2010 здесь.
открытый флайт
Просто скачайте последний источник. Вам не нужно создавать все CF-Lite, есть решение под названием objc.sln. Вам нужно будет исправить некоторые из включенных путей, но тогда все будет хорошо. В него даже включен тестовый проект, так что вы можете увидеть, как некоторые файлы .m-c компилируются и работают в visual studio. Одна печальная вещь - это работает только с Win32, а не с x64. Есть некоторый ассемблерный код, который нужно написать для x64, чтобы он поддерживал это.
источник
Недавняя попытка перенести Objective C 2.0 на Windows - это проект Subjective .
Из файла Readme:
Проект доступен на Github , и в Cocotron Group также есть ветка, в которой описываются некоторые достигнутые успехи и проблемы.
источник
Получить GNUStep здесь
Получить MINGW здесь
Установить MINGW Установить GNUStep Затем проверить
источник
Если вам комфортно в среде Visual Studio,
Маленький проект: jGRASP с gcc Большой проект: Cocotron
Я слышал, что есть эмуляторы, но я мог найти только Apple II Emulator http://virtualapple.org/ . Это похоже на игры.
источник
Прежде всего, забудьте об инструментах GNUStep . Ни ProjectManager, ни ProjectCenter нельзя назвать IDE. При всем уважении, похоже, что ребята из проекта GNUStep застряли в конце 80-х (именно тогда NeXTSTEP впервые появился).
напор
ctags
поддержите Objective-C начиная с r771 (обязательно выберите предварительную версию 5.9 и добавьте--langmap=ObjectiveC:.m.h
ее в командную строку, см. здесь ), так что у вас будет достойное завершение кода / навигация по тегам.Вот краткое руководство по добавлению поддержки Objective-C в плагин Vim tagbar.
Emacs
То же самое относится к
etags
поставляемому с современным Emacsen, так что вы можете начать с Emacs Objective C Mode . YASnippet предоставит полезные шаблоны:и если вы хотите что-то более умное, чем базовое завершение кода на основе тегов , взгляните на этот вопрос .
Затмение
CDT поддерживает
Makefile
проекты на основе:- так что технически вы можете создавать свои проекты Objective-C из коробки (в Windows вам понадобится набор инструментов Cygwin или MinGW ). Единственная проблема заключается в редакторе кода, который будет сообщать о множестве ошибок по сравнению с тем, что он считает чистым кодом C (проверка кода на лету может быть отключена, но все же ...). Если вам нужна правильная подсветка синтаксиса, вы можете добавить Eclim в Eclipse и наслаждаться всеми полезными функциями Eclipse и Vim (см. Выше).
Другой многообещающий плагин Eclipse - это Colorer , но он пока не поддерживает Objective-C. Не стесняйтесь подать запрос на функцию, хотя.
SlickEdit
SlickEdit , среди других особенностей великого IDE, делает поддержку Objective-C. Хотя освоить его довольно сложно (хотя и не так сложно, как в Emacs), я считаю, что это ваш лучший вариант, если вы не возражаете против его покупки (цена вполне доступная).
Кроме того, он имеет плагин Eclipse, который можно использовать в качестве альтернативы автономному редактору.
KDevelop
Ходят слухи, что существует патч KDevelop (15 лет, но кого это волнует?). Лично я не думаю, что KDevelop лучше по сравнению с Emacsen , поэтому я бы не стал его пробовать.
Вышесказанное также относится к разработке Objective-C в Linux, поскольку все упомянутые инструменты более или менее переносимы.
источник