如何将 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
中。
我正在探索使用 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
中。