设为首页 收藏本站
查看: 1011|回复: 0

[经验分享] ubuntu11.0.4下编译Android2.3源码过程

[复制链接]

尚未签到

发表于 2018-5-5 13:52:35 | 显示全部楼层 |阅读模式
  ubuntu11.0.4下编译Android2.3源码过程
  最近几天修改Android系统源码,遇到很多让人崩溃的问题。现在根据记忆写下,以后方便解决。
  从2.3开始,jdk使用1.6版本及Linux系统使用64位,所以很多工具都要重新安装。
  以下是第一次编译时遇到的问题:
  1、权限不够遇到多次
  /bin/bash:  prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: 权限不够
  /bin/bash: prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc:  权限不够
  /bin/bash: build/core/find-jdk-tools-jar.sh: 权限不够
  /bin/bash:  build/tools/findleaves.py: 权限不够
  /bin/bash: build/tools/findleaves.py: 权限不够
  Checking API: checkapi-last
  /bin/bash: out/host/linux-x86/bin/apicheck:  权限不够
  解决:
  chmod a+x  prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc
  对所有没有权限的文件增加可执行权限
2.make: ***  [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1  
  在32位下编译,直接make就可以了
  在64位下编译,会出一些错误,需要额外安装一些包:
  A,  没有gnu/stubs-32.h文件:
  /usr/include/gnu/stubs.h:7:27: error:  gnu/stubs-32.h: 没有该文件或目录
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
  解决方法:
  确定你的系统是x86_64 GNU/Linux
  root@mm-desktop:/home/mm/android# uname -a
  Linux mm-desktop  2.6.27-9-generic #1 SMP Thu Nov 20 22:15:32 UTC 2008 x86_64  GNU/Linux
  安装libc6-dev-i386
  sudo apt-get install libc6-dev-i386
  B。找不到-lstdc++
  /usr/bin/ld: cannot find -lstdc++
  解决方法:
  安装  g++-multilib,lib32z1-dev 和 lib32ncurses5-dev
  apt-get install  g++-4.2-multilib  lib32z1-dev  lib32ncurses5-dev
  
  
  3.make: ***  [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] 错误 1
  安装  g++-4.5-multilib
  $ sudo aptitude install git-core gnupg flex bison gperf  libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev  zlib1g-dev
  sudo apt-get install git-core gnupg flex bison gperf  build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386  lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev  lib32z-dev java-common unixodbc
    4.arm-eabi-gcc: error trying to exec 'cc1': execvp: No  such file or directory
  同事编kernel的时候总是会报下面的错误~~最后发现是交叉编译工具的权限问题,chmod -R 777 *  就可以了
  arm-eabi-gcc: error trying to exec 'cc1': execvp: No such file or  directory
  总结一下:
  1、确认CROSS-COMPILE的目录在PATH里面
  2、确认cc1是存在的
  3、确认交叉编译工具的权限

  摘录:
  错误处理
  在Ubuntu10.10(64位)编译Android2.3源码时,遇到各种各样的问题。不是缺这个,就是少那个。现把这些问题和解决方法罗列出来,供大家参考。
  错误:
  /usr/include/gnu/stubs.h:7:27: error:  gnu/stubs-32.h: No such file or directory
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误  1
  解决:
  sudo  apt-get install libc6-dev-i386
  错误:
  make:  *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] error  1
  解决:
  sudo  apt-get install g++-multilib
  错误:
  external/clearsilver/cgi/cgi.c:22: fatal error:  zlib.h: No such file or directory
  compilation terminated.
  make: ***  [out/host/linux-x86/obj/SHARED_LIBRARIES/libneo_cgi_intermediates/cgi.o] Error  1
  解决:
  sudo  apt-get install zlib1g-dev
  错误:
  /usr/bin/ld: cannot find -lz
  collect2: ld  returned 1 exit status
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error  1
  解决:
  sudo  apt-get install lib32z1-dev
  错误:
  bison  -d  -o out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp  frameworks/base/tools/aidl/aidl_language_y.y
  /bin/bash: bison: command not  found
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp]  Error 127
  解决:
  sudo  apt-get install bison
  错误:
  Lex:  aidl <= frameworks/base/tools/aidl/aidl_language_l.l
  /bin/bash: flex:  command not found
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_l.cpp]  Error 127
  解决:
  sudo  apt-get install flex
  错误:
  /usr/bin/ld: cannot find -lncurses
  collect2:  ld returned 1 exit status
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error  1
  解决:
  sudo  apt-get install lib32ncurses5-dev
  错误:
  prebuilt/linux-x86/sdl/include/SDL/SDL_syswm.h:55:  fatal error: X11/Xlib.h: No such file or directory
  compilation  terminated.
  make: ***  [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/android/main-common.o]  Error 1
  解决:
  sudo  apt-get install libx11-dev
  错误:
  sh:  gperf: not found
  calling gperf failed: 32512 at ./makeprop.pl line  96.
  make: ***  [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h]  Error 25
  make: *** Deleting file  `out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h'
  解决:
  sudo  apt-get install gperf
  错误:
  build/core/java.mk:9: *** bin: Target java  module does not define any source or resource files. Stop.
  解决:
  删除源码根目录下的bin文件夹,这个文件夹是导入eclipse时创建的。
  cannot find  -lXXX
  所有编译过程中遇到的类似这样的错误,都是缺少libXXX这样的库,解决方法就是:
  首先:利用命令:apt-cache search XXX 进行库搜索
  然后:找那些libXXX-dev这样的库进行安装,命令就是:sudo  apt-get install libXXX-dev
  最后:继续执行make
  生成固件
  1.在源码根目录下执行一下:
  . build/envsetup.sh
  2.通过所有编译(make)或模块编译(mmm)
  需要使用超级用户进行编译,要不会出现一下权限问题
  3.通过 export -p 查看HOME  的路径是否正确,否则修改 HOME 锁指向的路径为home/用户 中,直接 export  HOME=&quot;/home/用户&quot;
  4.在“/home/用户”目录下新建文件夹 firmware
  5.在Android 源码根目录下  执行./mkimage.sh
  修改./mkimage.sh 中的路径指向  “/home/用户”目录下的文件夹 firmware
  固件在firmware中生成

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-456226-1-1.html 上篇帖子: Ubuntu 12.04 MySQL改utf-8 启动不了 下篇帖子: ubuntu 12.04 64位设置兼容32位的实现
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表