Может ли GAS (GNU Assembler) скомпилироваться для iPhone / iTouch?

Я программирую некоторые приложения для рынка iDevice, используя неофициальный Open SDK, но мне трудно установить открытую цепочку инструментов в Windows, а не в Linux (я бы использовал Linux, но не могу на своем рабочем компьютере), поэтому я программирую его в GNU Assembler (GAS).

Может ли GAS настроить таргетинг на iDevice в качестве формата для выходных файлов? Если нет, то есть ли ассемблеры на базе Windows или Linux (желательно с открытым исходным кодом), которые можно собрать на iPod touch?


person Hawkcannon    schedule 25.08.2010    source источник
comment
Если это на вашем рабочем компьютере, я предполагаю, что это для вашего работодателя. Учитывая это, почему ваш работодатель не может купить вам хороший новый Mac Mini? Получите подходящие инструменты для работы.   -  person David Thornley    schedule 26.08.2010
comment
Я больше привык к Windows / Linux, чем к Mac, и GAS будет более гибким для переноса существующих приложений.   -  person Hawkcannon    schedule 29.08.2010
comment
Можете ли вы установить Linux на виртуальную машину под Windows на вашем рабочем компьютере? И если рынок iDevice, на который вы нацеливаетесь своими приложениями, вообще включает дистрибутив iTunes App Store (более 90% рынка iDevice в США), то вам необходимо использовать Mac (который построен на основе BSD Unix , не слишком отличается от работы под Linux).   -  person hotpaw2    schedule 29.08.2010


Ответы (3)


Обратите внимание, что gcc или gas - не последний шаг в создании пакета приложений для iOS. В официальной последовательности сборки Xcode следует компоновка, слияние UniversalBinary, упаковка и кодовое обозначение. Таким образом, вам могут потребоваться инструменты, по крайней мере, для некоторых из этих шагов, которые выполняются на выбранной вами платформе разработки.

person hotpaw2    schedule 30.08.2010

Даже если это технически возможно, я бы предпочел не браться за такое предприятие. Вы можете столкнуться с серьезными проблемами, касающимися не только кодовой подписи, но и утверждения в магазине приложений. Apple очень заинтересована в том, чтобы люди использовали только их официальные инструменты, и запрещает любое использование кросс-компиляторов и т.п. Если они обнаружат малейший намек на то, что ваше приложение было создано таким образом, как вы предложили, они вполне могут его отклонить.

Даже если они, возможно, не захотят - это риск, на который я бы не пошел. Представьте, что вы разрабатываете рабочий процесс, выполняете всю работу, решаете все проблемы с кодовой подписью и другие проблемы, а затем Apple отклоняет ваше приложение.

Привыкнуть к работе с Mac не так уж и сложно. По крайней мере, попробуйте, прежде чем рисковать.

person Toastor    schedule 03.09.2010
comment
Поменьше мнений, пожалуйста, вы не отвечаете на вопрос. - person Hawken; 23.04.2012
comment
Хотите объяснить, почему в ответе на каверзный вопрос нет места мнению? Кроме того, суть моего ответа почти такая же, как и тот, который вы считаете правильным, за исключением того, что моя формулировка другая. И немного менее оптимистичный - что я считаю адекватным, учитывая трудности, присущие подходу OP. Да, и я потратил немного меньше времени на детализацию, которая не изменит этих трудностей. Даже если вы нашли другой ответ более полезным, что совершенно нормально, я думаю, вы слишком остро реагируете. Голосование против просто неправильных ответов. Но, конечно, это только мое мнение. - person Toastor; 04.05.2012
comment
Проблема в том, что ответа почти нет вообще, за исключением строки "if it is technically possible", которая является повторной формулировкой вопроса. По сути, чтобы быть приемлемым ответом, вам просто нужно ответить на вопрос, да или нет, вы даже этого не делали, отсюда и мой комментарий. - person Hawken; 04.05.2012
comment
Итак, вы голосуете против меня, потому что вместо того, чтобы сказать да, это возможно, но вам не следует этого делать, я просто предположил, что это может быть возможным, и продолжил Думаю, здесь действительно имеет значение? Придирчивость, не так ли? - person Toastor; 04.05.2012
comment
возможно, это не ответ. Человек, задающий вопрос, потому что это может быть возможным, и он хочет знать, возможно ли это. Если вы не знаете, может ли GAS настроить таргетинг на iDevice, вам не следует отвечать на такой вопрос. Я не буду отвечать на дальнейшие комментарии, поскольку этот аргумент неконструктивен по отношению к рассматриваемому вопросу. - person Hawken; 06.05.2012

Технически, да, вы можете создать кросс-ассемблер и даже кросс-компилятор с набором инструментов GNU для iPhone. Магия заключается в передаче правильной арочной строки в "configure" binutils. Это должно быть --target=arm-apple-darwin плюс аргумент, который я не помню, чтобы сообщить binutils, какой набор команд ARM использовать по умолчанию. Так что создание кросс-ассемблера возможно и даже не так сложно.

Но это будет всего лишь один маленький шаг. Вам также понадобится компоновщик, который может обрабатывать файлы Mach-O, и я понятия не имею, как его настроить. Я знаю, что существовала полная цепочка инструментов для кросс-компиляции для iPhone в Linux с использованием оригинального Apple SDK, но с настраиваемым кросс-gcc. Однако Apple категорически запретила использование кросс-компиляторов, в основном, чтобы запретить кросс-компилятор Flash-to-iPhone. Кроме того, вам нужно подписать приложение кодом, и я понятия не имею, есть ли инструмент OSS, который сможет это сделать.

Как уже говорили другие, купите Mac Mini, возможно, подержанный, на eBay. Вы не продвинетесь далеко без Mac, и даже если вы все же захотите, вам сначала потребуются глубокие знания о компиляции для iPhone, а вы получите эти знания только на Mac.

Кроме того, вы, конечно же, не хотите жить без хорошего отладчика, инструментов и построителя интерфейсов для легкой отладки, поиска утечек памяти и построения графического интерфейса. Без Interface Builder вам пришлось бы полностью вручную кодировать графический интерфейс, что отнимет у вас много времени, а время - деньги. Множество книг и практических рекомендаций были бы для вас в значительной степени бесполезны. В общем, если вы попытаетесь взломать приложение с помощью кросс-компиляции, это будет стоить вашей компании больше денег, чем это будет стоить им того, чтобы дать вам красивый блестящий iMac плюс время на разработку.

person DarkDust    schedule 04.09.2010