【发布时间】:2014-10-26 19:04:46
【问题描述】:
我正在尝试使用 mipsel-linux-gcc 编译器交叉编译内核和 rootfs。主机是 64 位的,而要构建的 rootfs 是 32 位的。我尝试安装 ia32-libs 和 ia32-libs-multiarch。但失败了。我已经使用 apt-get 安装了 gcc-multilib。但是,我无法构建。我已将 PATH 变量更新为使用的工具链。
echo $PATH
usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/toolchains/stbgcc-4.5.3-1.1/垃圾箱
我得到的错误:
root@android-build:uclinux-rootfs# make vmlinuz-7425b0-android
make TFTPHOST=android-build TFTPDIR=/tftpboot/$USER TFTPPATH=$USER defaults-7425b0-android
make[1]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/uclinux-rootfs'
WARNING: using toolchain binaries in:
/opt/toolchains/stbgcc-4.5.3-1.1/bin
The recommended toolchain for this release is:
stbgcc-4.5.3-2.4
perl -w bin/config.pl save_defaults 7425b0-android
make[2]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make -f Makefile savedefconfig
make[3]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
scripts/kconfig/conf --savedefconfig=defconfig Kconfig
make[3]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make[2]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make -j1 silentoldconfig
make[2]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/uclinux-rootfs'
WARNING: using toolchain binaries in:
/opt/toolchains/stbgcc-4.5.3-1.1/bin
The recommended toolchain for this release is:
stbgcc-4.5.3-2.4
make -C linux ARCH=mips silentoldconfig
make[3]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make -f Makefile silentoldconfig
make[4]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
scripts/kconfig/conf --silentoldconfig Kconfig
make[4]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make[3]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make -C linux ARCH=mips prepare scripts
make[3]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make -f Makefile prepare
/bin/sh: mipsel-linux-gcc: not found
/bin/sh: mipsel-linux-gcc: not found
/bin/sh: mipsel-linux-gcc: not found
/bin/sh: mipsel-linux-gcc: not found
make[4]: mipsel-linux-gcc: Command not found
make[4]: Entering directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
CHK include/linux/version.h
CHK include/generated/utsrelease.h
CC kernel/bounds.s
/bin/sh: mipsel-linux-gcc: not found
make[5]: *** [kernel/bounds.s] Error 127
make[4]: *** [prepare0] Error 2
make[4]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make[3]: *** [prepare] Error 2
make[3]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/linux'
make[2]: *** [silentoldconfig] Error 2
make[2]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/uclinux-rootfs'
make[1]: *** [defaults-7425b0-android] Error 2
make[1]: Leaving directory `/opt/kernel/android/kernel-3.3-1.2-7425b0/uclinux-rootfs'
make: *** [vmlinuz-7425b0-android] Error 2
但是我得到的 mipsel-linux-gcc 给出了正确的答案
which mipsel-linux-uclibc-gcc
/opt/toolchains/stbgcc-4.5.3-1.1/bin/mipsel-linux-uclibc-gcc
我需要导出的变量是什么?
【问题讨论】:
-
尝试调用
/opt/toolchains/stbgcc-4.5.3-1.1/bin/mipsel-linux-uclibc-gcc -v,如果系统仍然显示not found,则说明您没有正确的 32 位库。也可以试试ldd /opt/toolchains/stbgcc-4.5.3-1.1/bin/mipsel-linux-uclibc-gcc。 -
ldd 显示“不是动态可执行文件”
-
我已经预料到了这样的事情。 ldd 不理解它的格式。
ls -l /opt/toolchains/stbgcc-4.5.3-1.1/bin/mipsel-linux-uclibc-gcc和file /opt/toolchains/stbgcc-4.5.3-1.1/bin/mipsel-linux-uclibc-gcc说什么?只是为了确保,这些简单的事情都可以。
标签: android linux bash gcc cross-compiling