android内核源码编译个人方法和错误记录
2016-09-22 20:19
471 查看
下载源码
git clone需要翻墙,下下来之后通过branch和checkout获得内核源码找到ndk路径
一般gcc交叉编译器位于ndk/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin(版本可能不同)
通过export PATH=$PATH:xxxxxx/ndk/toolchains/….. 将其设置为环境变量,以免找不到编译器
配置makefile
找到makefile中的ARCH和CROSS_COMPILE
分别设置为
ARCH ?= arm CROSS_COMPILE ?= arm-linux-androideabi-
make menuconfig
make menuconfig错误1
出现一大堆”/r”什么什么的错误原因
是在windows下下载的代码,我的环境是linux,涉及到换行符不同的问题解决方法
在linux下解压,甚至重新下载(我是重新下载的),然后tar解压make
错误1
fatal error: linux/compiler-gcc6.h: No such file or directory #include gcc_header(__GNUC__)
原因
没有配置makefile解决方法
在makefile中配置ARCH和CROSS_COMPILE错误2
arm-linux-androideabi-gcc: not found /root/projects/linux_source/goldfish/./Kbuild:35: recipe for target 'kernel/bounds.s' failed
原因
没有将交叉编译器路径加入PATH变量解决方法
通过之前的方法,在PATH里边加入交叉编译器路径错误3
arm-linux-androideabi-ld: internal error in relocate_special_relocatable, at /usr/local/google/buildbot/src/android/gcc/toolchain/build/../binutils/binutils-2.25/gold/arm.cc:10544 scripts/Makefile.build:308: recipe for target 'arch/arm/kernel/traps.o' failed
原因
我也不清楚..好像是编译器什么的没有设置好解决方法
make menuconfig 选择kernel Features ---> 勾选以下两个,保存 [*] Use the ARM EABI to compile the kernel [*] Allow old ABI binaries to run with this kernel (EXPERIMENTAL)
错误4
ernel/fork.c: In function 'copy_seccomp': kernel/fork.c:1134:2: error: implicit declaration of function 'task_no_new_privs' [-Werror=implicit-function-declaration] if (task_no_new_privs(current)) ^ kernel/fork.c:1135:3: error: implicit declaration of function 'task_set_no_new_privs' [-Werror=implicit-function-declaration] task_set_no_new_privs(p); ^ cc1: some warnings being treated as errors
原因
好像是版本问题,导致这里认为没有声明就被使用了解决方法
我不知道怎么通过标准方法解决,不知道那个-Werror=implicit-function-declaration怎么用,所以我直接进代码,然后补充了两个函数声明.根据其位置和参数添加两个声明.
错误5
出现了 too few arguments
原因
应该也是版本问题造成的,可能是include的.h文件和当前文件的版本不一样,导致更新的东西这边没有,然而这种问题已经不能简单的通过之前一样来解决了解决方法
这个已经不能简单的更改代码解决了,因为可能涉及到一些更深层次的问题,要么通过查看源码,自己进行更新,要么采取终极解决方案,换一套源码.因为这种情况肯定已经不是应该出现的问题了,而我,采用了后者相关文章推荐
- [Android环境搭建错误解决三]Android4.0.4源码编译常见错误及解决方法
- 记录几种ubuntu下android编译错误解决方法
- 编译android源码遇到错误及其解决方法
- Android编译环境(4) - Android内核编译方法(未公开源码)
- Linux内核笔记 - 内核编译错误及解决方法记录
- Android 4.0.1源码编译错误记录笔记
- 编译android源码时,jack server 出现out of memory error 错误的解决方法
- Mac环境下载编译Android源码方法记录
- Android之 Eclipse NDK编译——常见错误的解决方法记录
- ubuntu编译android 4.04源码的错误解决方法
- ANDROID源码编译错误及解决方法
- 编译android源码时,jack server 出现out of memory error 错误的解决方法
- android4.4.2源码和内核编译——图文详细记录
- Ubuntu11下android 源码编译 step by step 编译源码错误记录。
- Android 源码编译及常见错误及解决方法
- ubuntu 编译 Android 出现的若干错误及解决方法
- android内核编译方法 转载
- 1.android内核编译方法
- Android字符串资源编译错误的解决方法
- Ubuntu 编译Android若干错误及解决方法(转)