编译MTK6516的Android代码时,需要用到Gcc_4.1.2(MTK指定了这个版本的Gcc)。
而我的ubuntu10.04自带版本为Gcc_4.4.3。
处理步骤如下:
1. 首先下载所需的文件,我下载deb包,地址http://archive.ubuntu.com/ubuntu/pool/universe/g/gcc-4.1/
2. Gcc deb包存在依赖关系,安装顺序如下
32位安装GCC4.1.2
sudo dpkg -i gcc-4.1-base_4.1.2-27ubuntu1_i386.deb
sudo dpkg -i cpp-4.1_4.1.2-27ubuntu1_i386.deb
sudo dpkg -i cpp-4.1-doc_4.1.2-27ubuntu1_all.deb
sudo dpkg -i gcc-4.1_4.1.2-27ubuntu1_i386.deb
sudo dpkg -i gcc-4.1-multilib_4.1.2-27ubuntu1_i386.deb
sudo dpkg -i gcc-4.1-doc_4.1.2-27ubuntu1_all.deb
/*两个deb要一起输入,他们相互依赖,让系统自己处理*/
sudo dpkg -i g++-4.1_4.1.2-27ubuntu1_i386.deb libstdc++6-4.1-dev_4.1.2-27ubuntu1_i386.deb
sudo dpkg -i g++-4.1-multilib_4.1.2-27ubuntu1_i386.deb
64位安装
sudo dpkg -i gcc-4.1-base_4.1.2-27ubuntu1_amd64.deb
sudo dpkg -i cpp-4.1_4.1.2-27ubuntu1_amd64.deb
sudo dpkg -i cpp-4.1-doc_4.1.2-27ubuntu1_all.deb
sudo dpkg -i gcc-4.1_4.1.2-27ubuntu1_amd64.deb
sudo dpkg -i gcc-4.1-multilib_4.1.2-27ubuntu1_amd64.deb
sudo dpkg -i gcc-4.1-doc_4.1.2-27ubuntu1_all.deb
/*两个deb要一起输入,他们相互依赖,让系统自己处理*/
sudo dpkg -i g++-4.1_4.1.2-27ubuntu1_amd64.deb libstdc++6-4.1-dev_4.1.2-27ubuntu1_amd64.deb
sudo dpkg -i g++-4.1-multilib_4.1.2-27ubuntu1_amd64.deb
3. 这时,系统里面会有2个版本的GCC,缺省的还是原来默认的GCC 4.4.3,我们可以更改系统的默认配置。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.4 40
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.1 30
设置默认编译器,如下
sudo update-alternatives --config gcc
有 2 个选项可用于替换项 gcc (提供 /usr/bin/gcc)。
选择 路径 优先级 状态
------------------------------------------------------------
* 0 /usr/bin/gcc-4.4 40 自动模式
1 /usr/bin/gcc-4.1 30 手动模式
2 /usr/bin/gcc-4.4 40 手动模式
选择“1”。
4. 此时在命令行输入
1.gcc --version
gcc (GCC) 4.1.3 20080704 (prerelease) (Ubuntu 4.1.2-27ubuntu1)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
5.首先运行
./makeMtk --help
可以看到包含的project_name
然后运行
./makeMtk project_name new
此时会检查本地环境,不符合编译条件的软件版本会被列出在checkenv.log文件中。
打开这个文件,可以看到:
Suggested Linux OS and Tool Chain to install
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ Build System Requirment:
+ Linux OS : RedHat Enterprise Linux Server 5.4 or Ubuntu 9.10/Ubuntu 10.04
+ arm-eabi-gcc : Version 4.4.0
+ Perl : Version 5.8.X
+ Python : Version 2.5.X
+ Gcc : Version 4.1.2
+ JDK : Version 1.5 (1.6 is Not Supported)
+ Wine : Version 1.1 or above
+ Make : GNU Make 3.81 or above
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
在此案中,我没有安装arm-eabi-gcc,Wine;另外GCC版本过高(4.2.2),JDK版本也过高。
这两点我分别写了两个文章
《Andriod源码编译时的GCC版本问题解决》,《Andriod源码编译时的JDK版本问题解决》。
这里只记录arm-eabi-gcc,Wine的问题。
6. 安装Wine
sudo apt-get install wine1.2
7. 安装arm-eabi-gcc
在项目原文件根目录下输入:
find -name arm-eabi-gcc
显示:
./prebuilt/darwin-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
./prebuilt/darwin-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-gcc
./prebuilt/darwin-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.3.1/bin/arm-eabi-gcc
./prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-gcc
根据checkenv.log中的suggestion,选用arm-eabi-4.4.0,即把这个bin目录的绝对路径加入到环境变量的PATH中。
export PATH="$PATH:/source_files_path/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/"
8. 编译
当一切就绪后,就可以编译代码了。
我采用的开发模式是编译出ramdisk.img,system.img,userdata.img并拷到SDK中,运行模拟器来查看效果。
编译这几个img的命令是
./mk emulator new
分享到:
相关推荐
本文将详细阐述如何在Linux环境下搭建Android交叉编译环境,并针对iperf3.0源码进行编译,以生成适用于Android系统的可执行文件。 首先,交叉编译是指在一个平台上构建另一个平台上的软件。对于Android,我们通常在...
在Android平台上,GCC(GNU Compiler Collection)是一种关键的开发工具,它允许开发者使用C、C++等编程语言来编写和编译应用程序。GCC是开源的,由GNU项目维护,广泛应用于各种操作系统,包括Linux和Android。本文...
总之,Ubuntu系统下的Android源码编译涉及多个环节,包括环境准备、源码获取、编译配置和问题解决。理解并掌握这些步骤,对于Android开发者来说,不仅能够提升开发效率,也更有利于深入理解Android系统的内部工作...
标题中的"qt-eclipse-integration-linux.x86-gcc3.3-1.4.0.tar.gz"是一个软件包的名称,它表明了这个压缩文件是针对Linux平台上的x86架构(32位),并且是与GCC 3.3版本兼容的Qt Eclipse集成插件的1.4.0版本。...
Android源码编译教程 Android源码编译是一个复杂的过程,需要具备一定的编程基础和Linux操作系统的使用经验。本文档旨在提供一个详细的教程,指导读者从零开始编译Android源码。 环境准备 在开始编译Android源码...
在编译 Android 源码时,可能会出现 JDK 版本问题,例如 You are attempting to build with the incorrect version of java.Your version is: java version "1.6.0_22".The correct version is: Java SE 1.6。...
《Android源码编译流程详解》 Android系统作为全球最广泛使用的移动操作系统,其源码编译流程对于开发者而言至关重要。本文将详细解析Android源码的编译过程,包括环境搭建、编译命令以及相关工具的使用,帮助读者...
《Android源码编译流程详解》 Android源码编译是开发者深入了解系统内核、定制化开发或进行系统级调试的重要步骤。本文将详细介绍Android源码的编译流程,包括必要的环境配置、编译指令以及相关工具的使用。 首先...
在Android平台上,为了实现对音频和视频的处理,通常需要将FFmpeg源码编译为Android的共享库(.so文件)。在本案例中,提供的FFmpeg源码是经过特定修改的4.1.3版本,修复了某些变量错误,以便适应在Ubuntu操作系统下...
在Android开发过程中,深入理解Android源码和SDK的编译过程是至关重要的,这不仅可以帮助开发者更好地调试系统级问题,还能提升对Android平台的理解。以下是一份关于在Linux环境下编译Android源码和SDK的详细步骤及...
Ubuntu 下 Android 源码修改、编译及运行、launcher 定制 ...本文档提供了在 Ubuntu 系统下进行 Android 源码修改、编译和运行的详细步骤,旨在帮助开发者快速掌握 Android 源码编译和运行的技术。
2. **环境配置**:编译Android源码需要特定的开发环境,包括Linux发行版(如Ubuntu)、Java JDK、NDK(Native Development Kit)以及一些依赖的构建工具,例如GCC或者Clang编译器。确保所有必要的软件和库都已安装并...
Ubuntu 下编译 Android ...* 编译 Android 源码时,需要耐心等待,否则可能会导致编译失败。 编译 Android 源码并运行 Emulator 2 需要细心和耐心,只有经过正确的步骤,才能成功编译 Android 源码并运行 Emulator 2。
Subversion主要用于版本控制,虽然在Android源码下载过程中未直接使用,但在其他场合可能会用到。 总结来说,要获取和编译Android平台源码,你需要准备正确的开发环境,包括安装git、repo、JDK、gperf和交叉编译...
基于Google官方gcc4.9.x修改的源码, 支持直接通过交叉编译器编译出在Android上跑的gcc, gcc版本为7.2.0 建议静态编译
2. **调试系统级问题**:当遇到难以解决的应用程序崩溃等问题时,可以通过源码找到原因。 3. **定制系统**:根据需求定制自己的Android系统版本,例如去除不必要的功能、添加新的特性等。 4. **开发驱动程序**:对于...