如何将 libc_nano 与 Clang 一起使用?

How can I use libc_nano with Clang?

我正在探索使用 clang 作为 ARM 嵌入式开发的编译器。由于 clang 没有 .spec 文件的等价物,我无法说服 clang 对 link 反对 libc_nano。我怎么能告诉 clang 默认情况下不要 link 针对任何库,以便我可以指定正确的库,或者将 -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。然而它似乎没有做任何事情?

EDIT2:我知道我可以滥用 symlinks 来实现这一点。在这种情况下,我想避免使用 symlinks,因为它会使构建系统变得脆弱。

你可以在没有任何内部功能的情况下构建假 libc.a 并将其与 libc_nano 一起使用。

进一步 google-fu 和 grep-fu,原来答案一直在盯着我看。 Clang 有一个 -nodefaultlibs 可以解决问题并阻止默认链接器指令。尽管奇怪的是它没有记录在 --help 中。