Как я могу использовать libc_nano с Clang? - PullRequest
0 голосов
/ 23 мая 2018

Я изучаю использование clang в качестве компилятора для разработки встраиваемых приложений ARM.Так как у clang нет эквивалента .spec файлов, у меня возникли проблемы с тем, чтобы убедить clang связываться с libc_nano.Как я мог либо сказать clang не связываться с какими-либо библиотеками по умолчанию, чтобы я мог указать правильную библиотеку, либо переписать команду -lc в -lc_nano?

Команда, которую я пытаюсь запустить:

clang -target arm-none-eabi -mcpu=cortex-a5 -mfpu=neon-vfpv4 -mfloat-abi=hard -march=armv7-a main.c

В настоящее время я получаю это сообщение об ошибке:

/usr/lib/llvm-6.0/bin/ld.lld: error: unable to find library -lc

РЕДАКТИРОВАТЬ: я заметил, что у clang есть -fno-autolink, который согласно тексту справки: Disable generation of linker directives for automatic library linking.Однако, похоже, он ничего не делает?

РЕДАКТИРОВАТЬ 2: Я знаю, что я мог бы злоупотреблять символическими ссылками для достижения этой цели.Я хотел бы избежать символических ссылок в этом случае, поскольку это может сделать систему сборки хрупкой.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

После дальнейших гугл-фу и греп-фу выясняется, что ответ смотрел на меня все время.Clang имеет -nodefaultlibs, который делает трюк и предотвращает директивы компоновщика по умолчанию.Хотя странно, что это не было документировано в --help.

0 голосов
/ 23 мая 2018

Вы можете создать поддельный libc.a без каких-либо функций внутри и использовать его вместе с libc_nano.

...