Невозможно использовать встроенные функции GCC на Cortex-A9

Для встроенного проекта (голый металл) мне нужно использовать функции memc**. Хотя я не отключаю встроенные функции, я всегда получаю ошибку компоновщика; например:

неопределенная ссылка на `memcmp'

не важно, использую ли я: memcmp или __builtin_memcmp!

Я что-то пропустил, чтобы включить встроенные функции?

Мои параметры компиляции: -g -Wall -mcpu=cortex-a9

1 ответ

Решение

__builtin это немного лжи. При желании он будет использовать встроенную реализацию, если она существует. В противном случае он вызовет библиотечные функции. Вам нужно будет предоставить реализации этих функций, либо в вашем собственном коде, либо в библиотеке Си. Обратите внимание, что "библиотека C" не означает полноценную ОС libc, существует множество чистых библиотек C, которые не включают в себя функции, зависящие от ОС.

Другие вопросы по тегам