交叉编译的时候为什么需要使用export命令

交叉编译的时候为什么需要使用export命令

export PATH=/home/lyz/toolchain/arm/gcc-linaro-14.0.0-2023.06-x86_64_aarch64-linux-gnu/bin:$PATH
export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
export CC=aarch64-linux-gnu-gcc
打包工具脚本使用:
./my_scripts/image-fix.sh bl33
export PATH=/home/lyz/toolchain/arm/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin:$PATH
export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
export CC=aarch64-linux-gnu-gcc
make phytium_defconfig 			//=== cp  arch/arm64/configs/phytium_defconfig  .config
make menuconfig    //必须要使用一下menuconfig并且save一下 否则在编译的时候会询问很多未设置的选项
make -j8
export PATH=/home/lyz/toolchain/arm/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin:$PATH
export ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
export CC=aarch64-linux-gnu-gcc
make ARCH=arm64 phytium_defconfig
make ARCH=arm64 dtbs

export命令是shell的内置命令,其作用是允许当前的shell衍生出来的子shell可以使用export指定的变量。

如果不使用export的话,在shell中直接输入如下命令PATH=/home/lyz/toolchain/arm/gcc-linaro-11.3.1-2022.06-x86_64_aarch64-linux-gnu/bin:$PATH的话,这个变量只会在本shell生效,在其衍生的子shell仍然是使用的默认环境变量。

内核在编译的时候是使用多层Makefile去编译内核的,所以必然会基于当前的shell开启多个子shell进行编译,如果不使用export,那么后续的子shell会使用默认的ubuntu gcc编译器,就会报错。

posted @ 2025-12-12 10:50  Linux驱动开发  阅读(13)  评论(0)    收藏  举报