c - 如何将 libc_nano 与 Clang 一起使用?
问题描述
我正在探索使用 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
编辑:我注意到-fno-autolink
根据帮助文本,clang 有一个 which Disable generation of linker directives for automatic library linking
:. 然而它似乎没有做任何事情?
EDIT2:我知道我可以滥用符号链接来实现这一点。在这种情况下,我想避免使用符号链接,因为它会使构建系统变得脆弱。
解决方案
在进一步的 google-fu 和 grep-fu 之后,结果发现答案一直盯着我看。Clang 有一个-nodefaultlibs
可以解决问题并阻止默认链接器指令的方法。虽然奇怪的是它没有记录在--help
.
推荐阅读
- android - 构造函数中的变量在 Kotlin 中应该是私有的或公有的
- php - Laravel 测试响应是否包含错误?
- c# - 以编程方式安装 ISO 不起作用
- webhooks - 如何在不使用 ifttt 的情况下将 webhook 与谷歌助手集成?
- python - Django 使用欧几里得距离过滤对象
- python - 使用 GTK3 套接字在另一个窗口中嵌入窗口(Python)
- ios - 我想将模态 tableView 单元格数据返回到主视图
- model - 使用来自半连续目标的信息创建改进的二元分类器?
- c# - 如何从列是 C#.net 中字符串的一部分的数据表中进行选择
- spring - Spring JPA @OneToMany Repository.save() 方法返回的实体的实体为null