Ubuntu10.04 LTS 64位编译android4.1.2_r1遇到的错误及解决方法
2013-04-17 14:37
495 查看
使用google推荐的ubuntu10.04LTS 64位环境编译android4.1.2_r1.遇到很多问题,现把解决方法总结如下:
编译前先把下列目录用chmod -R a+x 命令递归加上可执行权限。
/prebuilts/tools/
/extrnal/
/frameworks/compile/libbcc/tools/
/build/core/find-jdk-tools-jar.sh
/build/tools/
还有一个mkuserimg.sh忘记哪个目录了
当然,编译出错permission denied的时候再看哪些没有可执行权限的,加上可执行权限。
1、错误:out/target/product/crespo/obj/STATIC_LIBRARIES/libext_intermediates/libxt_CONNMARK.c: 出的一堆错误
解决方法:在external/iptables/extensions/libxt_CONNMARK.c 文件里添加结构体定义
struct xt_connmark_tginfo1 {
u_int32_t ctmark, ctmask, nfmask;
u_int8_t mode;
};
enum {
XT_CONNMARK_SET = 0,
XT_CONNMARK_SAVE,
XT_CONNMARK_RESTORE
};
2、错误:out/target/product/crespo/obj/STATIC_LIBRARIES/libext_intermediates/libxt_MARK.c:出的一堆错误
解决方法:在external/iptables/extensions/libxt_MARK.c 文件中添加结构体定义
struct xt_mark_tginfo2 {
uint32_t mark, mask;
};
3、错误:/extrenal/iptables/...没有xt_dscp.h
解决方法:在本地新建一个xt_dscp.h文件,复制http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/netfilter/xt_dscp.h内容到文件。
并修改数据类型和目标平台一致,即把__u8改成u_int8_t,把__u32改成u_int32_t。修改后的文件已经上传到附件(抱歉,不知道怎么上传文件)。
最后把xt_dscp.h复制到/bionic/libc/kernel/common/linux/netfilter目录下。
4、错误: error: undefined reference to 'WebCore::CSSParser::lex()'
解决方法:touch external/webkit/Source/WebCore/css/tokenizer.flex
新建一个prebuilt/linux-x86/flex/ 目录
把/sdk/prebuilt/linux-x86/flex/flex-2.5.4a文件复制到新建的目录下
chmod a+x使之有可执行权限
这个问题应该也可以通过修改编译参数来解决,但是我这里就偷懒了。
基本上就遇到这些错误。编译时间根据机器配置而定,我同时在两台不同的笔记本上编译。一台双核主频共4000,2G内存,除去解决出错问题的时间大概3小时左右。
另一台单CPU主频800,1G内存,编译的非常非常非常慢,几度想要放弃,但是想着闲着也是闲着,就扔一边跑了。加上解决问题的时间,用了三天才出结果。
用fastboot工具把编译结果刷到google nexus s上,虽然能够显示界面,但是系统服务总是死掉,导致nexus s不断重启。没有办法只好又刷回2.3.4。
编译前先把下列目录用chmod -R a+x 命令递归加上可执行权限。
/prebuilts/tools/
/extrnal/
/frameworks/compile/libbcc/tools/
/build/core/find-jdk-tools-jar.sh
/build/tools/
还有一个mkuserimg.sh忘记哪个目录了
当然,编译出错permission denied的时候再看哪些没有可执行权限的,加上可执行权限。
1、错误:out/target/product/crespo/obj/STATIC_LIBRARIES/libext_intermediates/libxt_CONNMARK.c: 出的一堆错误
解决方法:在external/iptables/extensions/libxt_CONNMARK.c 文件里添加结构体定义
struct xt_connmark_tginfo1 {
u_int32_t ctmark, ctmask, nfmask;
u_int8_t mode;
};
enum {
XT_CONNMARK_SET = 0,
XT_CONNMARK_SAVE,
XT_CONNMARK_RESTORE
};
2、错误:out/target/product/crespo/obj/STATIC_LIBRARIES/libext_intermediates/libxt_MARK.c:出的一堆错误
解决方法:在external/iptables/extensions/libxt_MARK.c 文件中添加结构体定义
struct xt_mark_tginfo2 {
uint32_t mark, mask;
};
3、错误:/extrenal/iptables/...没有xt_dscp.h
解决方法:在本地新建一个xt_dscp.h文件,复制http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/include/linux/netfilter/xt_dscp.h内容到文件。
并修改数据类型和目标平台一致,即把__u8改成u_int8_t,把__u32改成u_int32_t。修改后的文件已经上传到附件(抱歉,不知道怎么上传文件)。
最后把xt_dscp.h复制到/bionic/libc/kernel/common/linux/netfilter目录下。
4、错误: error: undefined reference to 'WebCore::CSSParser::lex()'
解决方法:touch external/webkit/Source/WebCore/css/tokenizer.flex
新建一个prebuilt/linux-x86/flex/ 目录
把/sdk/prebuilt/linux-x86/flex/flex-2.5.4a文件复制到新建的目录下
chmod a+x使之有可执行权限
这个问题应该也可以通过修改编译参数来解决,但是我这里就偷懒了。
基本上就遇到这些错误。编译时间根据机器配置而定,我同时在两台不同的笔记本上编译。一台双核主频共4000,2G内存,除去解决出错问题的时间大概3小时左右。
另一台单CPU主频800,1G内存,编译的非常非常非常慢,几度想要放弃,但是想着闲着也是闲着,就扔一边跑了。加上解决问题的时间,用了三天才出结果。
用fastboot工具把编译结果刷到google nexus s上,虽然能够显示界面,但是系统服务总是死掉,导致nexus s不断重启。没有办法只好又刷回2.3.4。
相关文章推荐
- ubuntu10.10下编译android 2.3遇到的错误及解决方法
- Ubuntu 12.04 LTS server 编译 android-4.0.4_r2.1遇到的问题和解决方法
- 64位Ubuntu 11.04编译运行Android 2.3其他错误解决
- ubuntu 编译 Android 出现的若干错误及解决方法
- ubuntu编译android 4.04源码的错误解决方法
- ubuntu 12.04编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- ubuntu64位编译android2.3源码遇到的各种问题解决方案
- Ubuntu10.10 编译Android2.3源码时遇到的错误和解决办法
- ubuntu 编译 Android 出现的若干错误及解决方法
- ubuntu 编译 Android 出现的若干错误及解决方法
- 记录几种ubuntu下android编译错误解决方法
- hadoop2.4.1源码在64位系统编译过程中遇到的几个错误及解决方法
- 关于在ubuntu16.04 64位系统上安装交叉编译工具出现错误的解决方法
- 64bit ubuntu14.04编译PlatinumKit出现的arm-linux-androideabi-g++: not found错误解决方法
- ubuntu server 10.04 LTS(64位)装不了花生壳的解决方法
- Ubuntu 10.04 LTS 下 Android 4.1.2_r1 源代码的下载
- Android 开发环境搭建 与在编译中遇到错误make Error 45解决方法
- ubuntu 12.04(gcc降级)编译android代码遇到"_FORTIFY_SOURCE"的解决方法
- Ubuntu 11.04 下 Android4.0.1 编译错误解决方法
- 【转】Ubuntu 11.04 下 Android4.0.1 编译错误解决方法