少于 1 分钟阅读 次阅读

寻找使用的交叉编译链

在kernel下makefile中,定义了

ifeq ($(ARCH),arm64)
ifneq ($(wildcard $(srctree)/../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu),)
CROSS_COMPILE	?= $(srctree)/../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
endif
ifneq ($(wildcard $(srctree)/../prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9),)
CROSS_COMPILE	?= $(srctree)/../prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
endif
endif

逻辑解释

  • 优先检查 ​​Linaro 6.3.1​​ 工具链: prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-.../aarch64-linux-gnu-

  • 若不存在,检查 ​​Android 4.9​​ 工具链: prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/…/aarch64-linux-android-`

交叉编译器路径

经确认,实际使用的交叉编译链如下

  • 绝对路径
    /home/hw/hdd/rk3568_test/rk3568/rk3568_rk_android11.0_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
    
  • 相对路径
    prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
    

应用示例

实际编译时,可以这样设置环境变量

export ARCH=arm64

export CROSS_COMPILE=/home/hw/hdd/rk3568_test/rk3568/rk3568_rk_android11.0_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

export PATH=$PATH:/home/hw/hdd/rk3568_test/rk3568/rk3568_rk_android11.0_sdk/prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/

留下评论