и извините за мой не очень хороший английский.Я буду стараться изо всех сил:)
Я пытаюсь скомпилировать надстройку для моего графического калькулятора Casio в C. Это работает без проблем при использовании официального SDK.Поскольку он доступен только для Windows, я хочу использовать gcc.
Итак, я получил sh-rtems-gcc и его binutils из macports и попытался скомпилировать мою программу в соответствии с это инструкция .Я скопировал и вставил описанные addin.ld и crt0.s и поместил мои main.c и libfxsys.a (изте же ребята, что и инструкции, упомянутые выше) в том же каталоге.Подкаталог include содержит заголовки fxsys.Я проверил наличие всех функций библиотеки в .a файле с nm.
При использовании этой команды для компиляции:
sh-rtems-gcc-4.2.3 -m3 -mb -nostdlib -I./include -c crt0.s main.c
Все отлично работает.Но затем я пытаюсь связать:
sh-rtems-gcc-4.2.3 -m3 -mb -nostdlib -L. -o myaddin.elf -Taddin.ld crt0.o main.o -lfxsys
и получаю следующую ошибку:
main.o: In function `__main':
main.c:(.text+0x248): undefined reference to `_Bdisp_AllClr_VRAM'
...
... (--- cut 16 other errors in the same format ---)
...
main.c:(.text+0x360): undefined reference to `_Sleep'
./libfxsys.a(locate.o): In function `_locate':
locate.c:(.text+0x28): undefined reference to `_locate_OS'
collect2: ld gab 1 als Ende-Status zurück
Все отсутствующие символы находятся в libfxsys.a .Я проверил это с помощью nm.
Я уже поиграл с позициями библиотеки в команде, поскольку это часто упоминается как источник сбоя в других сообщениях, найденных в google, но безуспешно.Я также безуспешно пытался добавить и удалить опцию - lgcc , которая используется в вышеупомянутых инструкциях.
Мой хост-компьютер - это Intel Mac, OS X 10.6
. Поскольку я понятия не имею, как решить эту проблему, и не могу скомпилировать мою программу, я должен спросить: что я делаю не так?Как я могу скомпилировать мою программу без использования SDK?
Заранее спасибо, xythobuz
Редактировать:
Я также пытался связать с:
sh-rtems-ld -EB -L. -o myaddin.elf -Taddin.ld crt0.o --start-group main.o libfxsys.a --end-group
Но он выдает тот же результат, что и выше.