正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

文章

Home android 嵌入式开发 centos7 下android源码编译问题 错误254
Home android 嵌入式开发 centos7 下android源码编译问题 错误254

centos7 下android源码编译问题 错误254

android 嵌入式开发, linux开发学习 by

centos7下编译android的时候碰到到如下问题

clang++: error: unable to execute command: Segmentation fault (core dumped)
clang++: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 3.6 
Target: i686--linux-gnu
Thread model: posix
clang++: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
clang++: note: diagnostic msg: 
********************
 
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /tmp/java_lang_String-8b036d.cpp
clang++: note: diagnostic msg: /tmp/java_lang_String-8b036d.sh
clang++: note: diagnostic msg: 
 
********************
make: *** [out/host/linux-x86/obj32/SHARED_LIBRARIES/libart_intermediates/native/java_lang_String.o] 错误 254
 
#### make failed to build some targets (01:04:42 (hh:mm:ss)) ####

瞬间感觉是不是依赖库没安装。新装的系统,忘了装了。这里的错误是关于clang的错误,因为这个软件包我没装。由于google官方提供的是ubuntu的编译方法,至于centos那就得自己想办法了。找了好久才找到这些库!!不容易啊!

安装依赖库

sudo yum install autoconf213 python-networkx gcc* axel bison bzip2 ccache curl flex gawk gcc-c++ git glibc-devel glibc-static libstdc++-static libX11-devel make mesa-libGL-devel ncurses-devel patch zlib-devel ncurses-devel.i686 readline-devel.i686 zlib-devel.i686 libX11-devel.i686 mesa-libGL-devel.i686 glibc-devel.i686 libstdc++.i686 libXrandr.i686 zip perl-Digest-SHA wget
sudo yum install clang* llvm.x86_64.0.3.4.2-7.el7 llvm-libs.x86_64.0.3.4.2-7.el7

你可能还需要配置epel源:

sudo yum install epel-release

以及Chrome源:

vi /etc/yum.repos.d/google.repo

将如下内容写入并保存:

[google64]
name=Chrome-x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

安装java环境

懒得再关心java版本号以及各种扩展模块了,反正我硬盘1TB呢。。。直接简单粗暴的用java*安装好了

sudo yum install java*

修改默认的java版本号

sudo update-alternatives --config java
sudo update-alternatives --config javac

按照提示点选就可以了

安装 Chrome

打开终端,按需求安装不同版本的 Chrome 即可。

  • 安装稳定版本:sudo yum install google-chrome-stable
  • 安装测试版本:sudo yum install google-chrome-beta
  • 安装不稳定版本:sudo yum install google-chrome-beta

安装MTK Android 编译环境支持(可选)

鉴于国内很多公司都有做 MTK 平台,而且 MTK 平台 Android L 版本以前都是使用自己的一套编译系统,所以还需要安装一些额外软件才行:

sudo yum install unix2dos gperf mawk perl-Switch mingw32-gcc
sudo ln -s i686-w64-mingw32-gcc i586-mingw32msvc-gcc

如果你的系统是64位,那末你可能还需要添加32位软件运行库:

sudo yum -y install --skip-broken glibc.i686 arts.i686 audiofile.i686 bzip2-libs.i686 cairo.i686 cyrus-sasl-lib.i686 dbus-libs.i686 directfb.i686 esound-libs.i686 fltk.i686 freeglut.i686 gtk2.i686 hal-libs.i686 imlib.i686 lcms-libs.i686 lesstif.i686 libacl.i686 libao.i686 libattr.i686 libcap.i686 libdrm.i686 libexif.i686 libgnomecanvas.i686 libICE.i686 libieee1284.i686 libsigc++20.i686 libSM.i686 libtool-ltdl.i686 libusb.i686 libwmf.i686 libwmf-lite.i686 libX11.i686 libXau.i686 libXaw.i686 libXcomposite.i686 libXdamage.i686 libXdmcp.i686 libXext.i686 libXfixes.i686 libxkbfile.i686 libxml2.i686 libXmu.i686 libXp.i686 libXpm.i686 libXScrnSaver.i686 libxslt.i686 libXt.i686 libXtst.i686 libXv.i686 libXxf86vm.i686 lzo.i686 mesa-libGL.i686 mesa-libGLU.i686 nas-libs.i686 nss_ldap.i686 cdk.i686 openldap.i686 pam.i686 popt.i686 pulseaudio-libs.i686 sane-backends-libs-gphoto2.i686 sane-backends-libs.i686 SDL.i686 svgalib.i686 unixODBC.i686 zlib.i686 compat-expat1.i686 compat-libstdc++-33.i686 openal-soft.i686 alsa-oss-libs.i686 redhat-lsb.i686 alsa-plugins-pulseaudio.i686 alsa-plugins-oss.i686 alsa-lib.i686 nspluginwrapper.i686 libXv.i686 libXScrnSaver.i686 qt.i686 qt-x11.i686 pulseaudio-libs.i686 pulseaudio-libs-glib2.i686 alsa-plugins-pulseaudio.i686 lib32stdc++6 libstdc++.so.6 freetype.i686 libgcc.i686 libXpm.i686  libXmu.i686  libstdc++.i686 libXp.so.6  libgcc_s.so.1 libXpm.so.4 libXmu.so.6 libz.so.1 lib32z1 lib32stdc++6

最后,进入源代码目录,执行编译:

加载编译环境

source build/envsetup.sh

选择编译版本

lunch

输入对应序号即可。

开始编译,执行

ulimit -c unlimited && make update-api && make

ulimit -c unlimited && make update-api && make -j4

恩,你这样编译执行以后可能会出现吐核错误(core dump)的问题,这时候你可以把电脑重启一下。如果还不合适,就试着分两部执行,即:

ulimit -c unlimited
make update-api && make -j4

 

 

 

04 2015-12

 

我要 分享

 

 

本文 作者

 

相关 文章