Objective-C и MetroWerks C/C++ IDE

Я изучаю Objective-C, и у моего друга есть настоящий Macintosh IIci, который использует Mac System 7(в частности, 7.5.5 с процессором 68k), и я установил Metrowerks C/C++ IDE(я думаю, что это версия 1, но я не знаю), но я не проверял это, тогда я хочу знать одну вещь: возможно ли разработать в Objective-C, используя NSObjects/Objects и AppKit или что-то вроде этого? Благодарю.

4 ответа

Решение

Краткий ответ, как говорит Стивен, - нет. Но ради забавы я начал думать о том, что вам нужно сделать, чтобы на самом деле сделать эту работу.

1) Вам нужно было бы заставить gcc работать на 68k (gcc - это компилятор, говорящий на Objective-C; вы, вероятно, могли бы заменить lvm на gcc, но давайте не будем слишком сумасшедшими). Это не подвиг. Беглый взгляд на последние сборки gcc ничего не показывает для этой платформы (неудивительно). Я не эксперт по gcc, но могу поспорить, что он использует специфичные для gcc расширения и современный C, так что заставить его скомпилировать с существующим компилятором 68k, вероятно, будет непросто.

Таким образом, первым шагом для этого будет добавление 68k back-end к gcc. Это позволит gcc выложить код, который будет работать на 68k. Затем вы можете использовать сборку gcc x86 с поддержкой 68k для кросс-компиляции нового двоичного файла gcc, который фактически будет работать на вашем древнем Mac.

Никогда раньше не связывался с gcc, я подозреваю, что эта задача займет у меня два-три года. Может больше. но все же, это не невозможно.

2) Получив современную версию gcc, которую вы можете запустить на своей машине 68k, вы можете использовать ее для кросс-компиляции для x86 или PPC. (Поскольку вы говорите о AppKit, вы никогда не сможете на самом деле запустить ни одну из этих программ на своем старом компьютере. Все тестирование должно будет проводиться на более современной машине.) Теперь вам нужно получить все библиотеки и Заголовки для Cocoa/Foundation/AppKit/libc/etc с вашей целевой машины (PPC или Mac x86) и поместите их туда, где может найти gcc на вашей 68k. Это, вероятно, займет добрых 6 месяцев, чтобы получить правильные результаты. Но опять же, это не должно быть невозможно.

Это может быть не законно, хотя. Насколько я знаю, лицензионные соглашения для OS X (которая содержит Cocoa) и Xcode не позволят вам свободно перемещать эти двоичные файлы на любую нужную вам машину. Вы хотели бы поговорить с компетентным адвокатом, прежде чем делать это, так как никто не хочет посещать Интерпол.

3) Я думаю, что вы сделали на данный момент. Вы можете написать код Objective-C/Cocoa на своем Mac IIci, скомпилировать его для PPC или Mac x86, отправить его на OS X, используя ваш любимый метод (я был парнем с Mac с 2005 года, поэтому я не я даже не знаю вариантов подключения на IIci), и тестировать и отлаживать его довольно болезненно.

На этом этапе у вас есть доступ к Mac с OS X на чипе PPC или x86. И вы удивитесь, почему вы просто не делаете всю свою разработку на ЭТОЙ машине. А поскольку вы потратили несколько лет на настройку среды разработки IIci, покупка старого PPC Mac для разработки будет дешевой.

Тем не менее, это может быть забавной идеей. Вероятно, вы попадете на первую страницу Reddit, если вы остановите его. (Хотя, честно говоря, было бы проще просто подделать его для YouTube, если это все, что вам нужно.)

Краткий ответ: нет.

Objective-C стал связующим звеном в разработке Mac под OS X, которая вошла в бета-версию примерно через 10 лет после поставки этого компьютера. Большая часть разработки для систем до OS X была сделана на C или C++.

Без OS X у вас не будет системных библиотек или заголовков для компоновки, а компилятор Metrowerks не будет ничего знать о синтаксисе Objective-C или расширениях среды выполнения C.

В довершение всего, платформы Objective-C созданы для Mac PowerPC (или теперь Intel), тогда как процессор на этой машине использует более старую архитектуру 68k.

В начале 90-х годов gcc все еще компилировался для 68k Amiga, поэтому может быть шанс заставить его работать на 68k Mac OS. Я полагаю, что расширение Objective C было доступно по крайней мере с начала 90-х для gcc.

Другой вариант - использовать 68k Linux. Существует порт Debian 4.0 (etch) для 68k, и в настоящее время предпринимаются попытки его оживить, так что вы, вероятно, можете запустить довольно свежую версию gcc.

Также есть возможность кросс-компиляции.

Современными средами C (понятия не имел, поддерживала ли Objective C какая-либо из них) были Think C (позднее Symantec C++) и Apple Macintosh Workshop Workshop. Теоретически, вы можете получить один из них, чтобы скомпилировать объективную версию gcc, поддерживающую C.

Нет, я не знаю, что они слишком стары.

Другие вопросы по тегам