Разработка программ под iPhone
Модератор: Модераторы
Разработка программ под iPhone
Если кто-нибудь уже пробовал писать программы под iPhone на freepascal/lazarus, поделитесь опытом, как написать простенькую программу вида "Hello World".
Я скачал себе VMWare образ системы Mac OS X Leopard для i386, скачал и установил следующие файлы
iphone_sdk_for_iphone_os_2.2.*.dmg
fpc-2.2.4-*-i386-macosx.dmg
fpcsrc-2.2.4-*-i386-macosx.dmg
fpc-2.3.1v2.arm-iphone.dmg
lazarus-0.9.27.*-i386-macosx.dmg
Создаю в лазарусе новый проект, с параметрами:
Библиотека виджетов LCL: cocoa (pre-alpha)
Операционная система: Darwin
Целевое семейство процессоров: arm
Но при компиляции пишет, что модуль Interfaces не найден.
Подскажите будет ли работать LCL на iPhone? И если нет, то какие есть альтернативы?
И где-нибудь можно посмотреть примеры программ написанных на freepascal для iPhone? Мне бы хотя бы знать от чего отталкиваться, дальше уже сам разберусь.
Пояндексил и погуглил, но информации по данной теме практически нет.
Я скачал себе VMWare образ системы Mac OS X Leopard для i386, скачал и установил следующие файлы
iphone_sdk_for_iphone_os_2.2.*.dmg
fpc-2.2.4-*-i386-macosx.dmg
fpcsrc-2.2.4-*-i386-macosx.dmg
fpc-2.3.1v2.arm-iphone.dmg
lazarus-0.9.27.*-i386-macosx.dmg
Создаю в лазарусе новый проект, с параметрами:
Библиотека виджетов LCL: cocoa (pre-alpha)
Операционная система: Darwin
Целевое семейство процессоров: arm
Но при компиляции пишет, что модуль Interfaces не найден.
Подскажите будет ли работать LCL на iPhone? И если нет, то какие есть альтернативы?
И где-нибудь можно посмотреть примеры программ написанных на freepascal для iPhone? Мне бы хотя бы знать от чего отталкиваться, дальше уже сам разберусь.
Пояндексил и погуглил, но информации по данной теме практически нет.
а сделать make в папке lazarus/lcl/interfaces/cocoa?
B4rr4cuda писал(а):а сделать make в папке lazarus/lcl/interfaces/cocoa?
Одну только эту папку нельзя скомпилировать, можно только целиком LCL собрать.
Но при попытке собрать LCL коммандой make OS_TARGET=darwin CPU_TARGET=arm выдаёт ошибку
/usr/bin/as assembler for architecture arm not installed
baiguzov писал(а):B4rr4cuda писал(а):а сделать make в папке lazarus/lcl/interfaces/cocoa?
Одну только эту папку нельзя скомпилировать, можно только целиком LCL собрать.
Но при попытке собрать LCL коммандой make OS_TARGET=darwin CPU_TARGET=arm выдаёт ошибку
/usr/bin/as assembler for architecture arm not installed
А fpc кросскомпилятор для arm у Вас создан? Похоже, что нет. Сначала нужно откомпилировать fpc, для получения библиотек и компилятора для arm.
Добавлено спустя 10 минут 11 секунд:
Линк, как откомпилировать кросскомпилятор:
http://freepascal.ru/forum/viewtopic.php?f=1&t=4032&p=30545#p30545
У меня уже есть файл ppcrossarm, он установился из пакета fpc-2.3.1v2.arm-iphone.dmg и в папке units есть модули для arm-darwin
значит я так понимаю мне не нужно собсирать кросскомпилятор.
как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?
значит я так понимаю мне не нужно собсирать кросскомпилятор.
как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?
Попробуйте тогда указать путь к кросскомпилятлру make PP={путь к кросскомпилятору}
Пакет binutils установлен?
как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?
Пакет binutils установлен?
- shade
- энтузиаст
- Сообщения: 879
- Зарегистрирован: 21.02.2006 19:15:48
- Откуда: http://shamangrad.net/
- Контактная информация:
baiguzov писал(а):как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?
Да нужно устанавливать отдельно.
Поищие тут ftp://ftp.freepascal.org/fpc/contrib/cross/
Logo писал(а):Попробуйте тогда указать путь к кросскомпилятлру make PP={путь к кросскомпилятору}
Выдаёт туже ошибку.как я уже писал выше вылазиет ошибка "/usr/bin/as assembler for architecture arm not installed", может быть файл /usr/bin/as для arm отдельно нужно где-то скачивать и ставить?
Пакет binutils установлен?
Похоже что binutils не установлен. А где можно скачать для mac os?
Добавлено спустя 12 минут 35 секунд:
shade писал(а):Поищие тут ftp://ftp.freepascal.org/fpc/contrib/cross/
увы тут для mac os x нет binutils
Последний раз редактировалось baiguzov 30.04.2009 18:12:55, всего редактировалось 1 раз.
В принципе он должен быть с дистрибутивом. Можно попробовать взять исходники и откомпилировать под МАС. Сейчас посмотрю инфу и допишу.
Добавлено спустя 7 минут 41 секунду:
arm-elf-binutils - вроде так называется пакет в портах для МАК.
или прямиком на http://www.gnu.org/software/binutils/ и компилируем кросс под arm.
Добавлено спустя 7 минут 41 секунду:
arm-elf-binutils - вроде так называется пакет в портах для МАК.
или прямиком на http://www.gnu.org/software/binutils/ и компилируем кросс под arm.
Уже писал "hello world" для iPhone.
Компилить и собирать консольные приложения несложно, но опыта работы с ними у меня нет
я тренировался на эмуляторе интерфейсов (именно интерфейсов, а не arm устройства), и делал гуёвый Hello world. Т.к. у меня самого iPhone/iPod нету, то просил участника fpc команды скомпилить и проверить - и заработало!
статью о подготовке fpc к iPhone, читаем здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
(здесь же есть пример opengles приложения)
если нужны ГУЁвые проги, то про Cocoa widgetset - забудьте! он основывается на framework-е AppKit.
AppKit существует только для Mac OS. В iPhoneOS используется UiKit.
что приятно порадовало, большое количество Cи-шных системных функций (вроде Core Foundation, sockets, opengles, openal и т.д.) успешно перекочевало на iPhoneOS, и не нужно использовать только Objective-C. Для этих функций уже сконвертированы хедеры. Но про MacOSAll тоже забудьте, потому что он заточен под OSX 10.4.
Основные вилы, это:
1) нужна лицензия разработчика (минимум 100$ в год) чтобы загружать на iPhone проги через XCode. Про другие способы я не знаю (но точно знаю что они есть
ибо пираццтво!)
2) как конкретно Xcode заливает проги на iPhone доподлинно неизвестно. А это значит, чтобы залить прогу, придётся создавать FPC XCode проект. Лично меня это не радует, потому что я пишу с помощью Lazarus-а, и ковыряться с XCode, не охота (а надо). В планах написать конвертер Lazarus Project -> XCode project
3) Заголовки UIkit и все iPhoneOS библиотек НЕЛЬЗЯ распространять, даже в виде паскалевских исходников - нарушение лицензии Apple. Если это нарушить, то можно испачкать себя и всех окружающих (сообщество fpc).
Есть 2 варианта: конвертировать только то, что нужно ручками и никому не показывать (так уже делал - не слишком трудно кстати), либо ждать PasCocoa с её конвертером.
4) есть несколько проектов PasCocoa - для работы с интерфейсами Objective-C. В целом ничего сложного в работе с objc объектами нет (Спасибо разработчикам Apple). Но ни один из PasCocoa незакончен
Есть куча желания довести это всё до ума, а времени нет.... http://wiki.lazarus.freepascal.org/PasCocoa
Есть ещё вариант PasCocoa, как расширение синтаксиса паскаля.
http://wiki.lazarus.freepascal.org/FPC_PasCocoa
5) intel mac os x ONLY. скорей всего - хакинтош сгодится то же
powerpc - забудьте
6) собственно девайс. Лично мне нужно 2 месяца питаться исключительно святым духом, и не пользоваться инетом, светом и водой, чтобы позволить купить себе сие устройство (не влезая в долги). т.к. iPod touch дешевле iPhone, имеет смысл приобрести именно iPod.
Всё собирался прикрутить к Lazarus-у расширение, чтобы можно было по-быстрому собирать iPhone приложения. Но т.к. конвертер (пункт №2 см.выше), не написал, то и расширение не реализовано .. (эх, позор на мою голову! грозился ещё месяц назад это всё сделать)
Вывод:
* нужны срочные финансовые вложения в развитие FPC+iPhone
...это так, иначе терпеливо ждём/помогаем в разработке.
* задатки положены отличные! Все будущие возможные выкрутасы Apple, с повальным переходом на Objective-C, FPC воспримет абсолютно безболезненно
Неплохо, если будущий apple-book тоже будет основан на iPhoneOS. ну и поддержка 64-битных приложений в маке будет (carbon - 32 bit only)
Компилить и собирать консольные приложения несложно, но опыта работы с ними у меня нет
статью о подготовке fpc к iPhone, читаем здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
(здесь же есть пример opengles приложения)
если нужны ГУЁвые проги, то про Cocoa widgetset - забудьте! он основывается на framework-е AppKit.
AppKit существует только для Mac OS. В iPhoneOS используется UiKit.
что приятно порадовало, большое количество Cи-шных системных функций (вроде Core Foundation, sockets, opengles, openal и т.д.) успешно перекочевало на iPhoneOS, и не нужно использовать только Objective-C. Для этих функций уже сконвертированы хедеры. Но про MacOSAll тоже забудьте, потому что он заточен под OSX 10.4.
Основные вилы, это:
1) нужна лицензия разработчика (минимум 100$ в год) чтобы загружать на iPhone проги через XCode. Про другие способы я не знаю (но точно знаю что они есть
2) как конкретно Xcode заливает проги на iPhone доподлинно неизвестно. А это значит, чтобы залить прогу, придётся создавать FPC XCode проект. Лично меня это не радует, потому что я пишу с помощью Lazarus-а, и ковыряться с XCode, не охота (а надо). В планах написать конвертер Lazarus Project -> XCode project
3) Заголовки UIkit и все iPhoneOS библиотек НЕЛЬЗЯ распространять, даже в виде паскалевских исходников - нарушение лицензии Apple. Если это нарушить, то можно испачкать себя и всех окружающих (сообщество fpc).
Есть 2 варианта: конвертировать только то, что нужно ручками и никому не показывать (так уже делал - не слишком трудно кстати), либо ждать PasCocoa с её конвертером.
4) есть несколько проектов PasCocoa - для работы с интерфейсами Objective-C. В целом ничего сложного в работе с objc объектами нет (Спасибо разработчикам Apple). Но ни один из PasCocoa незакончен
Есть ещё вариант PasCocoa, как расширение синтаксиса паскаля.
http://wiki.lazarus.freepascal.org/FPC_PasCocoa
5) intel mac os x ONLY. скорей всего - хакинтош сгодится то же
6) собственно девайс. Лично мне нужно 2 месяца питаться исключительно святым духом, и не пользоваться инетом, светом и водой, чтобы позволить купить себе сие устройство (не влезая в долги). т.к. iPod touch дешевле iPhone, имеет смысл приобрести именно iPod.
Всё собирался прикрутить к Lazarus-у расширение, чтобы можно было по-быстрому собирать iPhone приложения. Но т.к. конвертер (пункт №2 см.выше), не написал, то и расширение не реализовано .. (эх, позор на мою голову! грозился ещё месяц назад это всё сделать)
Вывод:
* нужны срочные финансовые вложения в развитие FPC+iPhone
* задатки положены отличные! Все будущие возможные выкрутасы Apple, с повальным переходом на Objective-C, FPC воспримет абсолютно безболезненно
Установил таки себе програму MacPorts, а в месте с ней и arm-elf-binutils, только lcl при компиляции с ним всё равно выдавал туже ошибку.
После этого сделал поиск ports search iphone и нашёл порт arm-apple-darwin-binutils @r188 (cross, iphone), установил его, а затем в нём нашёл файл скопировал arm-apple-darwin-as, скопировал его в /usr/libexec/gcc/darwin/arm и переименовал просто в "as", и тогда lcl при сборке перестал на него ругаться, но теперь ругается на отсутствие модуля MacOSAll "Fatal: Can't find unit MacOSAll used by FileUtil".
скалогрыз, девайсы сейчас начали дешеветь, если ещё осенью iPhone 3G 16Gb стоил порядка 30тыр, причём половина из них продавались серыми, без гарантии и документов, то сейчас этот же девайс уже продаётся за 22тыр причём белый с гарантией и документами, и я так думаю что в ближайшие полгода цена на него будет ещё падать.
Я разрабатываю IM-мессенджер для одного сайта, изначально он был написан на delphi и только под win32, сейчас я его переписал на lazarus и скомпилировал под win32, linux и mac os x, а также для КПК с windows mobile. В идеале хочу скомпилировать под все популярные платформы, включая symbian и iphone. Но со сборкой под symbian помоему всё глухо. А вот iphone, я так понимаю, всё таки развивается.
Может если не на lcl, то каким либо другим способом можно написать гуёвое приложение для iphone на freepascal/lazarus, то было бы замечательно. Потому что мне pascal привычнее чем си.
После этого сделал поиск ports search iphone и нашёл порт arm-apple-darwin-binutils @r188 (cross, iphone), установил его, а затем в нём нашёл файл скопировал arm-apple-darwin-as, скопировал его в /usr/libexec/gcc/darwin/arm и переименовал просто в "as", и тогда lcl при сборке перестал на него ругаться, но теперь ругается на отсутствие модуля MacOSAll "Fatal: Can't find unit MacOSAll used by FileUtil".
скалогрыз, девайсы сейчас начали дешеветь, если ещё осенью iPhone 3G 16Gb стоил порядка 30тыр, причём половина из них продавались серыми, без гарантии и документов, то сейчас этот же девайс уже продаётся за 22тыр причём белый с гарантией и документами, и я так думаю что в ближайшие полгода цена на него будет ещё падать.
Я разрабатываю IM-мессенджер для одного сайта, изначально он был написан на delphi и только под win32, сейчас я его переписал на lazarus и скомпилировал под win32, linux и mac os x, а также для КПК с windows mobile. В идеале хочу скомпилировать под все популярные платформы, включая symbian и iphone. Но со сборкой под symbian помоему всё глухо. А вот iphone, я так понимаю, всё таки развивается.
Может если не на lcl, то каким либо другим способом можно написать гуёвое приложение для iphone на freepascal/lazarus, то было бы замечательно. Потому что мне pascal привычнее чем си.
baiguzov писал(а):Установил таки себе програму MacPorts, а в месте с ней и arm-elf-binutils, только lcl при компиляции с ним всё равно выдавал туже ошибку.
После этого сделал поиск ports search iphone и нашёл порт arm-apple-darwin-binutils @r188 (cross, iphone), установил его, а затем в нём нашёл файл скопировал arm-apple-darwin-as, скопировал его в /usr/libexec/gcc/darwin/arm и переименовал просто в "as", и тогда lcl при сборке перестал на него ругаться, но теперь ругается на отсутствие модуля MacOSAll "Fatal: Can't find unit MacOSAll used by FileUtil".
Спасибо за информацию. Дальше по MacOS я уже ничем не помогу, не работал пока с этой системой
В Linux, иногда, нужно путь указывать к binutils первым в PATH, например:
export PATH=/opt/cross/arm-linux/bin:/opt/cross/arm-linux/lib:$PATH
Может и в MacOS это поможет.
блин. ну не нужен тебе MacPorts
если у тебя XCode версии 3.0 и выше а так же Intel mac, то все необходимые библиотеки для кросс-сборки у тебя есть.
осталось скачать fpc заточенный под кросс сборку
скачать здесь: ftp://ftp.freepascal.org/fpc/snapshot/v ... iphone.dmg
читать здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
знание английского - обязательно.
если у тебя XCode версии 3.0 и выше а так же Intel mac, то все необходимые библиотеки для кросс-сборки у тебя есть.
осталось скачать fpc заточенный под кросс сборку
скачать здесь: ftp://ftp.freepascal.org/fpc/snapshot/v ... iphone.dmg
читать здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
знание английского - обязательно.
скалогрыз писал(а):скачать здесь: ftp://ftp.freepascal.org/fpc/snapshot/v ... iphone.dmg
читать здесь: http://wiki.lazarus.freepascal.org/iPho ... evelopment
знание английского - обязательно.
именно это я и сделал, ты лучше покажи простенький пример программы, например окно, несколько контролов, и кнопка, при нажатии которой появляется табличка "Hello World"
Скажи какие модули нужно подключать? И какие вообще на данный момент есть возможности написания программ для iPhone, т.е. все ли возможности iPhone будут доступны из моей программы или только какая-то часть.
именно это я и сделал, ты лучше покажи простенький пример программы, например окно, несколько контролов, и кнопка, при нажатии которой появляется табличка "Hello World"
хех... см. аттач. и читай фпц вики...
Скажи какие модули нужно подключать? И какие вообще на данный момент есть возможности написания программ для iPhone, т.е. все ли возможности iPhone будут доступны из моей программы или только какая-то часть.
1-м делом нужно подключить основной модуль для разработчика паскаль - голову
2-м делом придёться почитать эти вещи: http://developer.apple.com/DOCUMENTATIO ... ction.html
3-х ...
4-х PROFIT
- Вложения
-
- iphonetest.zip
- (4.88 КБ) 637 скачиваний
