Я хотел бы предоставить реализацию malloc
для newlib-nano
при использовании его с gcc
. В моей ситуации у меня есть некоторый исходный файл, скажем main.c
, который вызывает strftime
. В newlib-nano
реализации strftime
используется malloc
. В заголовочном файле my_memory.h
я объявил функцию void *malloc(size_t size)
и предоставил реализацию в соответствующем файле my_memory.c
.
При связывании проекта с использованием gcc
компоновщик завершается с ошибкой .../libc_nano.a(liba-malloc.o)
из-за нескольких определений malloc
. Я хотел бы, чтобы компоновщик взял мою реализацию malloc
вместо того, чтобы извлекать newlib-nano
, но сохранил использование newlib-nano
реализации других функций стандартной библиотеки, например memset
.
Я искал вариант «исключить объектный файл из stati c library» в g cc, чтобы попытаться исключить libc_nano.a(liba-malloc.o)
, но безуспешно. Обратите внимание, что компилятор извлекает этот объектный файл, и у меня нет доступа к libc_nano.a
компилятора для исправления liba-malloc.o
с моим собственным объектным файлом.
В любом случае, я что-то упускаю или не получается достичь того, чего я пытаюсь достичь?