Открыть главное меню

Изменения

ElfPack2

3638 байт убрано, 09:53, 20 мая 2011
Инструментарий разработчика
comment1,
== Инструментарий разработчика == Как уже упоминалось ранееcomment5, для сборки эльфов используется '''GCC'''. А именно, набор [http://www.devkitpro.org devkitPro], который широко используется для разработки под GameBoy Advance, Nintendo DS, GP32, Playstation Portable и GameCube. Из его состава, правда, понадобится только devkitARM часть, которая также включает множество бесполезных для разработчика эльфов приложений и требует много трафика для скачки. Возможно, найдутся желающие сделать специальный пакет программ для разработчиков эльфов... И уже есть первая версия настроенной среды разработки, собранная тов. '''DmT''': [http://forum.motofan.ru/index.php?showtopic=169109 EDK] Скачать установщик можно здесь: [http://sourceforge.net/projects/devkitpro/files/Automated%20Installer/ Automated Installer]  === Сборка эльфа === Пример простейшего скрипта для сборки эльфа (make.cmd):<pre>@echo off del prelink.elf arm-eabi-gcc -c -Wall -mbig-endian -mthumb -mthumb-interwork -I..\SDK -fshort-wchar -nostdlib -O -DEP2 helloworld_snd.carm-eabi-ld -pie -EB -O -nostdlib helloworld_snd.o std.sa -o prelink.elf del /Q *.opostlink prelink.elf -o helloworld_snd.elfpause</pre> Некоторые пояснения:*Ключ -I указывает относительный путь к SDK*Файл std.sa выполняет функцию, аналогичную Lib.o предыдущей версии эльфпака*Результат работы arm-eabi-ld мы передаём в postlink. Он создаёт результирующий файл res.elf - его мы переименовываем в helloworld_snd.elf и загружаем в телефон.*Ключ -o у postlink задаёт имя результирующего файла Для сборки C++ проекта используйте '''arm-eabi-g++''', а также добавьте следующие ключи:<pre>-fno-enforce-eh-specs -fno-rtti -fno-use-cxa-get-exception-ptr -fno-exceptions -fno-non-call-exceptions</pre> === Сборка shared library === В общем случае, скрипт сборки аналогичен скрипту для обычного эльфа, за исключением:<ol><li>Используйте "<tt>-shared</tt>" вместо "<tt>-pie</tt>"</li> <li>К строке линкера (arm-eabi-ld) добавляется "<tt>-soname=<внутреннее_имя_библиотеки></tt>"</li> <li>К строке постлинкера добавляется ключ "<tt>-shared</tt>" и "<tt>-def <имя_def_файла></tt>" Def-файл предназначен для определения списка функций и глобальных переменных (хотя вторые не рекомендуется делать доступными), к которым имеют доступ эльфы, подключающие данную библиотеку.<br><br> Пример def-файла: <pre>testlibfnsharedVar</pre></li></ol> Пример самой библиотеки можно посмотреть в репозитории svn://svn.vilko.ru/elfs2/libtest 
== Различия в исходных кодах ==
Анонимный участник