c - clang-11 说它支持 arm64_32 但是当我尝试使用“-march=arm64_32”时它说它不支持
问题描述
我正在尝试为 aarch64 的新板编译一个需要使用 32 位指针和整数(很长的非常令人沮丧的故事)的程序。我尝试clang-11 -print-targets
了一个并得到了:
$ clang-11 -print-targets
Registered Targets:
aarch64 - AArch64 (little endian)
aarch64_32 - AArch64 (little endian ILP32)
aarch64_be - AArch64 (big endian)
amdgcn - AMD GCN GPUs
arm - ARM
arm64 - ARM64 (little endian)
arm64_32 - ARM64 (little endian ILP32)
armeb - ARM (big endian)
avr - Atmel AVR Microcontroller
bpf - BPF (host endian)
...
但是当我尝试编译一个简单的测试程序时,我得到:
/usr/bin/clang-11 -g <redacted>/arm_pointer_size/arm_pointer_size.c -march=arm64_32 --target=arm64-linux-gnueabihf -fuse-ld=lld -o <redacted>/arm_pointer_size/arm_pointer_size
clang: error: the clang compiler does not support '-march=arm64_32'
当我删除-march=arm64_32
构建作品时。如果我尝试将“_32”放在三元组中,我会得到:
/usr/bin/clang-11 -g <redacted>/arm_pointer_size/arm_pointer_size.c --target=arm64_32-linux-gnueabihf -fuse-ld=lld -o <redacted>/arm_pointer_size/arm_pointer_size
clang: error: unknown target triple 'arm64_32-unknown-linux-gnueabihf', please use -triple or -arch
我正在使用来自 Debian 存储库的 llvm/clang,但似乎这无关紧要。为什么 clang 说它的注册目标包括 arm64_32 却不支持呢?
解决方案
推荐阅读
- java - 安卓; 动态按钮布局
- sage - 如何在 SageMath 中计算符号/数字傅里叶变换,并从中定义一个函数?
- html - 当我们在 jQuery 中单击它时更改按钮颜色
- javascript - 如何使用多个参数过滤对象数组
- php - SwiftMailer 的 SMTP 超时设置与什么有关?
- mongodb - 猫鼬没有将它添加到同一个对象中
- spring-boot - 得到错误 BeanCurrentlyInCreationException:只要我在我的 Spring Boot 安全配置中公开 clientRegistrationRepository bean
- c - 我可以询问子字符串是否是使用 C 预处理器指令的字符串的一部分吗?
- json - 从 vert.x JsonObject 序列化字符串中删除地图节点
- javascript - 注销并登录其中一个页面后如何同步页面?