Я студент-электронщик из Бразилии, и сейчас я работаю со встроенными системами.Сложность в использовании стандартных библиотек C в инструменте SoCLib
Я пытаюсь передать MP3-декодер (написанный на C), называемый minimp3, платформе, созданной с помощью инструмента SoCLib (этот инструмент содержит множество аппаратных моделей, таких как процессоры, память и соединения всех написанный в SystemC, позволяет создавать модели встроенных систем).
Платформа, которую я создаю, состоит из процессора MIPS, ОЗУ, межсоединения и TTY (виртуального терминала), поэтому, очевидно, декодер MP3 должен быть скомпилирован.
Этот MP3-декодер использует некоторые стандартные библиотеки C, которые не создаются в инструменте SoCLib (ведьма содержит только stdio.h и stdlib.h).
Сначала я попытался запустить свою платформу без внесения каких-либо изменений в make-файлы, предоставленные инструментом SoCLib. При этом, когда я вошел в команду «сделать» Я получил следующие сообщения (в том числе и того же типа):
undefined reference to `tan'
undefined reference to `sin'
undefined reference to `cos'
undefined reference to `memset'
undefined reference to `realloc'
undefined reference to `open'
undefined reference to `strlen'
Исследование об этой ошибке, я обнаружил, что это может быть потому, что линкер не увязывания заголовки C, поэтому я добавил следующие команды (выделено) на Makefile:
CFLAGS=-Wall -O2 -I. $(ADD_CFLAGS) $(DEBUG_CFLAGS) $($(ARCH)_CFLAGS) -ggdb -I$(COMMON) **-I/usr/include** $(INTERFACE_CFLAGS)
mipsel-unknown-elf-ld -q $($(ARCH)_LDFLAGS) $(ADD_LDFLAGS) -o [email protected] $(filter %.o,$^) **-lm** -T $(filter %ldscript,$^) $(LIBGCC)*
Однако, введя "сделать" команду еще раз, я получил следующее сообщение об ошибке:
mipsel-unknown-elf-ld: cannot find -lm
И теперь я не знаю, что делать.
Может ли кто-нибудь мне помочь?
Просто ссылка на сайт SoCLib: http://www.soclib.fr/trac/dev –