gpt4 book ai didi

c++ - 交叉编译和直接在目标上编译时所需的 GCC arm 选项之间的区别?

转载 作者:行者123 更新时间:2023-11-28 04:49:12 28 4
gpt4 key购买 nike

我已经创建了一个 C++ 应用程序,并希望为 cubietruck 板(ARM® Cortex™-A7 双核)的 debian jessie 8.0 armbian 目标编译它。- cat/proc/cpuinfo 给出:

Processor       : ARMv7 Processor rev 4 (v7l)
processor : 0
BogoMIPS : 956.30

processor : 1
BogoMIPS : 959.75

Features : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 4

Hardware : sun7i
Revision : 0000
Serial : 1651668805c0e142
Chipid : 16516688-80515475-52574848-05c0e142

- dpkg --print-architecture

armhf

我已经得出结论,我需要的用于交叉编译的相关 arm gcc 选项是:

--with-abi=aapcs-linux  (-mabi)
--with-cpu=cortex-a7 (-mcpu)
--with-tune=cortex-a7 (-mtune)
--with-mode=arm/thumb (-marm -mthumb)
--with-fpu=neon-vfpv4 (-mfpu)
--with-float=hard

如果我想直接在板上构建相同的源代码,-march=native 选项(如果支持)是否足够,或者我还需要上述任何标志吗?

最佳答案

要查找 -march=native 激活的标志,请使用 gcc -march=native -Q --help=target

这是我的开发板(Pine64 - Cortex A53 with Linux 64 bits)的输出:

debian@pine64:~$ gcc -march=native -Q --help=target
The following options are target specific:
-mabi=ABI lp64
-march=ARCH native
-mbig-endian [disabled]
-mbionic [disabled]
-mcmodel= small
-mcpu=CPU
-mfix-cortex-a53-835769 [enabled]
-mgeneral-regs-only [disabled]
-mglibc [enabled]
-mlittle-endian [enabled]
-mlra [enabled]
-momit-leaf-frame-pointer [enabled]
-mstrict-align [disabled]
-mtls-dialect= desc
-mtune=CPU
-muclibc [disabled]
....
[Omitted output]

关于c++ - 交叉编译和直接在目标上编译时所需的 GCC arm 选项之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48563535/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com