【问题标题】:How can I use libc_nano with Clang?如何将 libc_nano 与 Clang 一起使用?
【发布时间】:2018-05-23 08:54:21
【问题描述】:

我正在探索使用 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:我知道我可以滥用符号链接来实现这一点。在这种情况下,我想避免使用符号链接,因为它会使构建系统变得脆弱。

【问题讨论】:

    标签: c arm embedded clang libc


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以构建没有任何功能的假 libc.a,并将其与 libc_nano 一起使用。

      【讨论】:

      • 这不是一个糟糕的主意,尽管它不能很好地集成到 CMake 工具链文件中。
      猜你喜欢
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 2022-11-14
      • 1970-01-01
      • 2011-06-08
      • 2016-08-07
      • 1970-01-01
      相关资源
      最近更新 更多