cc1:错误:-march= switch 的值错误(armv8-a)

问题描述 投票:0回答:3

我正在为树莓派 3 编译 u-boot,正如此链接中提到的步骤

http://www.embeddedforu.com/embedded-linux/raspberry-pi/how-to-compile-mainline-u-boot-for-raspberry-pi/

我收到此错误:

cc1:警告:未知寄存器名称:x18

lib/asm-offsets.c:1:0:错误:-march=switch 的值错误(armv8-a)

有人可以帮助我吗?

我应该已经在板上安装了 u-boot,但上周我遇到了麻烦

感谢您的宝贵时间

cross-compiling raspberry-pi3 u-boot
3个回答
2
投票

gcc 是什么版本,你想构建

rpi_3_defconfig
(arm64) 还是
rpi_3_32b_defconfig

arm-linux-gnueabi-gcc -v

使用linaro工具链4.9,环境如下,通过构建

rpi_3_defconfig
:

wget https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/aarch64-linux-gnu/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu.tar.xz

CROSS_COMPILE=/opt/gcc-linaro-4.9.4-2017.01-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

ARCH=arm64

2
投票

确保使用同一用户导出和编译(不要使用 sudo)。例如,接下来的命令将失败:

export CROSS_COMPILE=aarch64-linux-gnu-
make rpi_4_defconfig
sudo make

在这种情况下,make 命令会忽略您已导出的 CROSS_COMPILE 变量,并尝试使用默认的本地编译器来编译 U-Boot。


0
投票

如果您使用 CLion 导入 aosp 本机。 进入AOSP根目录

cd AOSPROOT/out/development/ide/clion
create CMakeLists.txt

cmake_minimum_required(VERSION 3.5)
project(custom)
add_subdirectory(art/libdexfile/libdexfile-arm64-android)
......
# add 
set(ANDROID_ROOT your aosp path)
set(CMAKE_C_COMPILER "${ANDROID_ROOT}/prebuilts/clang/host/linux-x86/clang-r416183b1/bin/clang")
set(CMAKE_CXX_COMPILER "${ANDROID_ROOT}/prebuilts/clang/host/linux-x86/clang-r416183b1/bin/clang++")
# end
© www.soinside.com 2019 - 2024. All rights reserved.