/bin/sh: 1: arm-none-linux-gnueabihf-ARCH=armgcc: not found
时间: 2023-10-10 20:07:35 浏览: 238
该错误提示表明在执行命令"arm-none-linux-gnueabihf-ARCH=armgcc"时,系统无法找到对应的编译器。根据你提供的引用内容,你可以尝试在makefile的开头添加以下代码来指定编译器路径:
ARCH=arm
CROSS_COMPILE=/opt/fsl-linaro-toolchain/bin/arm-none-linux-gnueabi-
这样,在编译过程中会使用指定路径下的编译器,从而避免了系统无法找到编译器的问题。
如果问题仍然存在,请确保你正确设置了编译器路径,并且该路径下确实存在编译器。你可以通过输入"ls /opt/fsl-linaro-toolchain/bin"来查看该路径下的文件和文件夹,确认编译器是否存在。
相关问题
./configure --arch=arm --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree --enable-shared --enable-pic --cross-prefix=arm-linux-gnueabihf- --prefix=/usr/local/arm/ffmpeg --extra-cflags="-I/usr/local/arm/include" --extra-ldflags="-L/usr/local/arm/lib -lx264" arm-linux-gnueabihf-gcc is unable to create an executable file. C compiler test failed.
这个错误通常是由于交叉编译工具链配置不正确或缺少所需的库文件导致的。您可以尝试以下步骤来解决问题:
1. 确保您的交叉编译工具链已正确安装并配置。您可以尝试使用以下命令检查:
```
arm-linux-gnueabihf-gcc -v
```
如果找不到该命令,请尝试安装交叉编译工具链。
2. 确保您的系统上安装了所需的库文件。您可以尝试使用以下命令安装缺少的库文件:
```
sudo apt-get install libc6-armhf-cross libstdc++-armhf-cross
```
3. 如果您的系统是64位的,请确保32位库和工具链已正确安装。您可以尝试使用以下命令安装:
```
sudo apt-get install gcc-multilib g++-multilib libc6-dev-i386
```
4. 如果您的系统上已有32位库和工具链,则可能需要在configure命令中设置正确的路径。您可以尝试使用以下命令设置正确的路径:
```
export PATH=/path/to/arm-linux-gnueabihf:$PATH
```
其中"/path/to"是您的交叉编译工具链的路径。
希望这些解决方案可以帮助您解决问题。
以 EMMC 核心板为例,讲解一下如何编译出对应的 Linux 镜像文件。新建名为 “mx6ull_alientek_emmc.sh”的 shell 脚本,然后在这个 shell 脚本里面输入如下所示内容: 示例代码 35.2.1 mx6ull_alientek_emmc.sh 文件内容 1 #!/bin/sh 2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 3 make ARCH=arm CROSS_COMPILE=arm-lin
ux-gnueabihf- alientek_emmc_defconfig
4 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
5 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
6 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage
7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
8 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
9 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx6ull-alientek-emmc.dtb
10 mkdir -p output
11 cp -f arch/arm/boot/uImage output/
12 cp -f arch/arm/boot/dts/imx6ull-alientek-emmc.dtb output/
13 cp -f System.map output/
14 mkdir -p output/lib/modules
15 cp -fRv modules/* output/lib/modules/
16 rm output/lib/modules/`uname -r`/build
17 rm output/lib/modules/`uname -r`/source
18 tar -cf output.tar output
19 rm -rf output
上述代码中,第 2 行的 make 命令用于清除之前的编译结果,第 3 行的 make 命令用于配置编译环境,第 4 行的 make 命令用于打开内核配置界面,第 5 行的 make 命令用于编译内核,第 6 行的 make 命令用于编译内核镜像,第 7 行的 make 命令用于编译内核模块,第 8 行的 make 命令用于编译设备树二进制文件,第 9 行的 make 命令用于编译特定设备树文件,第 10-18 行的命令用于创建输出目录,并将编译结果复制到输出目录中,最后一行的命令用于清除临时文件。
这个脚本是针对 MX6ULL alientek EMMC 核心板进行编译的,如果需要编译其他型号的核心板,则需要相应调整配置文件和设备树文件的名称。
阅读全文