我一直关注此链接Android kernel compile and test with Android Emulator来编译android源代码。
但是在尝试使用
编译源代码时make ARCH=arm CROSS_COMPILE=/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
我收到此错误。
lares@lares-Inspiron-1545:~/android_kernel$ make ARCH=arm CROSS_COMPILE=/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
make: execvp: /home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc: Permission denied
scripts/kconfig/conf -s arch/arm/Kconfig
make[2]: execvp: scripts/kconfig/conf: Permission denied
make[2]: *** [silentoldconfig] Error 127
make[1]: *** [silentoldconfig] Error 2
CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/kernel.release'. Stop.
通过将权限分配给适当的目录来解决此问题后,我得到了这个。
lares@lares-Inspiron-1545:~/android_kernel$ make ARCH=arm CROSS_COMPILE=/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
scripts/kconfig/conf -s arch/arm/Kconfig
CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
UPD include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CC kernel/bounds.s
arm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
有人可以帮助我吗?
答案 0 :(得分:1)
/home/lares/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
的部分(或全部)路径的权限未设置为read plus execute。
如果您具有root访问权限,请检查每个路径组件并进行适当调整。否则,让你的系统管理员修复它。
由于这是最初的问题,因此其他交叉开发工具(包括头文件和库)存在其他权限问题的可能性相当高。
答案 1 :(得分:1)
最近我一直在努力解决同样的问题,最后发现问题的根本原因是我有OpenJDK版本的Java而不是Sun Java。请使用 java -version :
进行检查而不是
java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.10.04.1)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
应该是
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)
检查this有关如何更新和切换java包的信息。