每当我试图在带有C++芯片的Macbook上编译带有march=native
的任何M1程序时,在使用clang时都会出现以下错误:
clang: error: the clang compiler does not support '-march=native'
然而,它曾经工作在一个旧的Macbook与英特尔的CPU。clang不支持这个体系结构吗?
clang --version
给出:
Apple clang version 12.0.0 (clang-1200.0.32.29)
Target: arm64-apple-darwin20.2.0
发布于 2021-02-23 12:51:28
据我所知,这并不是Apple M1
特有的,它也适用于其他各种体系结构(主要是其他各种arm处理器)。参见这里的错误报告,https://github.com/DMOJ/judge-server/issues/303
基本上,为新体系结构构建的每一个clang都必须选择为编译器构建的目标提供"march=native“的默认值;如果不是,那么您将看到此错误消息。即使对于那些有优化目标的arm处理器来说,你也必须特别使用"-mcpu=xxx“而不是"-march”。
例如,对于iphone,您可以使用-mcpu=apple-a11
、-mcpu=apple-a12
等。
然而,还没有为Apple M1
实现这样的目标。
发布于 2021-11-11 09:37:22
在AppleClang13.0.0版中,-mcpu=apple-m1
现已面世。
发布于 2021-05-30 14:52:00
$ clang --print-supported-cpus
Apple clang version 12.0.5 (clang-1205.0.22.9)
Target: arm64-apple-darwin20.5.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
Available CPUs for this target:
a64fx
apple-a10
apple-a11
apple-a12
apple-a13
apple-a14
apple-a7
apple-a8
apple-a9
apple-latest
apple-s4
apple-s5
carmel
cortex-a34
cortex-a35
cortex-a53
cortex-a55
cortex-a57
cortex-a65
cortex-a65ae
cortex-a72
cortex-a73
cortex-a75
cortex-a76
cortex-a76ae
cortex-a77
cortex-a78
cortex-x1
cyclone
exynos-m3
exynos-m4
exynos-m5
falkor
generic
kryo
lightning
neoverse-e1
neoverse-n1
saphira
thunderx
thunderx2t99
thunderx3t110
thunderxt81
thunderxt83
thunderxt88
tsv110
vortex
-mcpu=apple-a14
可能是M1的最佳选择。
https://stackoverflow.com/questions/65966969
复制相似问题