我正在探索使用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
。但它似乎没有做任何事情?
EDIT2:我知道我可以滥用符号链接来实现这一目标。在这种情况下,我想避免使用符号链接,因为它可以使构建系统变得脆弱。
答案 0 :(得分:3)
进一步谷歌和grep-fu,事实证明答案是在整个时间盯着我。 Clang有一个-nodefaultlibs
来完成这个技巧并防止默认的链接器指令。虽然奇怪的是--help
没有记录。
答案 1 :(得分:1)
你可以构建没有任何函数的伪libc.a,并与libc_nano一起使用。