cmake -D CMAKE_CXX_FLAGS =“-march = armv8-a”用于aarch64编译

时间:2019-06-03 19:11:06

标签: cmake arm cortex-a

我需要修改为树莓派(第一代)(运行ARM11 cpu)编写的一系列代码和脚本,以使其在基于Allwinner H6的主板cpu(ARM Cortex-A53)上运行。

我已经将ARCH armv7l中的ARCH aarch64替换为cmake -D CMAKE_CXX_FLAGS="-march=armv7-a" /..path 。 但是,要启动我拥有的cmake编译命令字符串

-march=armv7-a

我想用-march=armv8-a代替aarch64

现在我的疑问是:对于Allwinner H6 64bit编译是否正确?为什么我不能直接放置armv8-a而不是JSON.stringify({id:0, name:foo}) === JSON.stringify({id:0, name:foo}) // true ?最后,“ armv8”和“ armv8-a”之间有什么区别?。

对不起,我在这里有些困惑。

1 个答案:

答案 0 :(得分:1)

  1. 1)是,-march=armv8-a是正确的,但具体程度不如 之所以说-mtune=cortex-a53,是因为Allwinner H6是cortex-a53。
  2. 我的猜测是,您不能放-march=aarch64而不是-march=arm-v8-a,因为这太笼统了:毕竟,您已经可以按照here的说明指定‘armv8-a’, ‘armv8.1-a’, ‘armv8.2-a’, ‘armv8.3-a’, ‘armv8.4-a’ and ‘armv8.5-a’
  3. armv8是ARMv8-AARMv8-MARMv8-R的总称。根据手臂术语,A,R和M是“配置文件”,并且针对不同类型的应用程序: 有关更多详细信息,请参见hereherehere