2009-10-27 2 views
2

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

+2

Если вам нужен опыт разработки предшественника какао класса 68K, у меня есть несколько дополнительных машин NeXT. ;) – bbum

ответ

5

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

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

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

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

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

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

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

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

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

+1

Ты немного здесь. Получить что-то для компиляции Objective-C для 68k, безусловно, сложно, но сложная часть - это рамки. Вы не можете «получить все библиотеки для Cocoa/Foundation с вашей целевой машины», потому что они нацелены на другую архитектуру процессора и операционную систему. Они бесполезны на 68k Mac. Вам придется полностью реализовать все эти рамки. – AriX

+1

По правде говоря, вы на самом деле * можете * написать Objective-C для 68k Mac в Metrowerks, используя что-то вроде Portable Object Compiler, который просто переводит Objective-C на C перед компиляцией: http://users.telenet.be /stes/compiler.html (но вам все равно будет недоставать Foundation, AppKit и т. д. Замена POC называется ObjectPak, и она действительно старая *) – AriX

0

Нет, это невозможно, они слишком стары, насколько мне известно.

5

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

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

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

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

+1

7.5 все еще было много Паскаля. –

+0

@NSD: Очень верно. –

+0

На самом деле, поздние версии CodeWarrior _did_ поддерживают Objective-C, несмотря на отсутствие библиотеки времени исполнения для связи, но ни одна версия не выполняла. :-) –

1

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

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

Существует также возможность перекрестного компиляции.

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

 Смежные вопросы

  • Нет связанных вопросов^_^