查看: 1228|回复: 0
打印 上一主题 下一主题

Android编译环境搭建

[复制链接]
跳转到指定楼层
沙发
发表于 2015-4-4 16:34:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

1、安装ubuntu11.10(64位)

第一步就让我很是纠结,安装完成之后,我又安装了A显卡,然后又把整个系统更新了下,结果悲剧了,重启之后,一直停在开机LOG处,不能进入系统,在网上找资料说是显卡驱动的问题,一番折腾无果只得重装,这次学乖了,我是先把整个系统更新完了再装得显卡驱动,嘿嘿!

2、安装编译环境必备条件:

a)、java jdk,不用赘述;

b)、安装编译需要的相关包:


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc




安装过程中,我去掉了[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]lib32readline5-dev





原因是Ubuntu64位中总是找不到源。


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]sudo apt-get install libx11-dev:i386




3、配置ccache(这里直接复制下面给出的文章的相关内容,感谢作者的分享)

ccache(“compiler cache”的缩写)是一个编译器缓存,该工具会高速缓存编译生成的信息,并在编译的特定部分使用高速缓存的信息, 比如头文件,这样就节省了通常使用cpp解析这些信息所需要的时间。如果您编译清单2中的文件,假定foobar.h中包含对其他头文件的引用,ccache会用那个文件的 cpp-parsed版本来取代include声明。ccache只是将最终的文本拷贝到文件中,使得它可以立即被编译,而不是真正去读取、理解并解释其内容。

这一步是可选的。我在编译的时候没有配置ccache,最后的编译时间用了尼玛至少六个小时以上,虽然目前我还没有尝试过配置ccache后的编译速度,这里还是建议读者配置一下,以节省编译时间,不要像我这么悲催。配置方法如下:
打开用户目录下的.bashrc,将下面语句添加到文件后面并保存退出:

[size=1em]   [size=1em][size=1em][color=white !important][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]export USE_CCACHE=1





   


默认情况下cache(缓存)会保存在~/.ccache目录下,如果主目录位于NFS或其他非本地文件系统上,也要将下面语句添加到.bashrc中,之后保存并退出:


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]export CCACHE_DIR=<path-to-your-cache-directory>





[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]<path-to-your-cache-directory>修改为cache目录的位置。




推荐的cache目录大小为50-100GB,在命令行执行以下命令:


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]prebuilt/linux-x86/ccache/ccache -M 50G




该设置会保存到CCACHE_DIR中,且该命令是长效的,不会因系统重启而失效。

4、安装GCC、G++4.4版本,并将GCC、G++链接到G++-4.4、GCC-4.4:

首先到/usr/bin目录下

安装:


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em]2

[size=1em][size=1em]sudo apt-get install gcc-4.4
[size=1em]sudo apt-get install g++-4.4




链接:


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em]2

[size=1em]3

[size=1em]4

[size=1em][size=1em]<span style="color:#e53333;">#注意:是“gcc-4.4”,而不是gcc4.4,我就被这个坑了</span> sudo mv gcc gcc.bak
[size=1em]sudo ln -s gcc-4.4 gcc
[size=1em]sudo mv g++ g++.bak
[size=1em]sudo ln -s g++-4.4 g++



5、编译Android4.0.3源代码,这里主要写出编译过程中遇到的问题:

问题一:GL/glx.h: 没有那个文件或目录

           原因是没有安装libgl1-mesa-dev库


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]sudo apt-get install libgl1-mesa-dev





问题二:g++ selected multilib '32' not installed

          需要安装gcc、g++的multilib包,直接执行下面的命令,会自动安装g++、gcc的multilib包;

[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]sudo apt-get install g++-4.4-multilib





提示:设置编译器缓存是在你下载完源代码之后执行下面命令:


[size=1em][backcolor=rgb(108, 226, 108) !important]
[color=white !important][size=1em]?

[size=1em]1

[size=1em][size=1em]prebuilt/linux-x86/ccache/ccache -M 50G




后面就是一路通畅了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

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