编译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
分享到:
相关推荐
基于Google官方gcc4.9.x修改的源码, 支持直接通过交叉编译器编译出在Android上跑的gcc, gcc版本为7.2.0 建议静态编译
下载到指定路径,赋予权限,配合terminal使用
第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...
参考博客【PaddlePaddle】源码编译Paddle-Lite android库的过程。 二、准备demo Demo在Paddle-Lite/build.lite.android.armv8.gcc/inference_lite_lib.android.armv8/demo/java/android/下。 这里有一个脚本prepare_...
1.webrtc 配置环境 和 安装软件 2. 获取源码 及 编译
第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...
第二部分内容,先简单讲解Android系统移植相关原理,然后一步步手把手教大家如何进行Linux内核移植、Android源码编译、以及Android到Cortex A8开发板的移植;第三部分内容,先教大家如何搭建裸机开发环境,然后带领...
如何配置Ubuntu编译多平台Android源码,主要配置的地方openjdk、gcc、g++
关于编译,我是在Ubuntu上编译后拷贝到win10中的,ijkplayer源码需要gcc编译,windows各种不好用,如果使用cynwin还不如在ubuntu下编译。 编译的过程是下载sdk,ndk。设置环境变量后按照github上的说明编译即可. ...
可根据博客【PaddlePaddle】源码编译Paddle-Lite android库的过程或者其他本地源码编译的方法编译好android平台的库文件。 编译好的库文件位于Paddle-Lite/build.lite/android.armv8.gcc/inference_lite_lib.android...
交叉编译nbis_v4_2_0所遇到的问题及编译通过过程(交叉编译运行于Android手机平台 交叉编译工具链ndk包含的工具链) 1、编译前首先设置好环境变量 export SYSROOT=$NDK/platforms/android-14/arch-arm export CC=...
交叉编译工具:arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz Uboot源码和SD卡烧写工具:uboot_tiny4412-20130729.tgz Exynos4412芯片手册:Exynos4412_Datasheet.pdf Exynos4412芯片启动流程:Exynos4412_iROM.pdf 核心...
可以通过其他交叉编译工具,在其他系统下编译,但是缺少了原系统编译器一些优秀的特性,而且在游戏环境下及其不稳定,ffmpeg X的目的就是在源码级别解决各种操作系统和编译器的编译运行问题。 由于工作量巨大,希望...
-国嵌应用班-1-1(GCC程序编译).avi -国嵌应用班-1-2(GDB程序调试).avi -国嵌应用班-1-3(makefile工程管理).avi -国嵌应用班-1-4(必修实验).avi -第2天(文件时间编程) -国嵌应用班-2-1(系统调用方式访问...
虽然编译后能运行,但由于使用了原始套接字,必须root权限运行,这与和Linux下真实的ping有差别:后者是不需要输入sudo或者切换到#才能运行的。linux中的ping源码没有找到,但是看到oschina上有一例自制的ping源码...
word源码java #目标 DeviceConnect是手机控制ARM板子上的外设的最简单实例,目标是让使用者能更方便的扩张。...device目录,ARM工控板的程序源码,C语言程序,gcc交叉编译器编译后在ARM板子上运行。 ios目录,iPhone
14.04上使用Android编译的编译器服务安装说明: Div工具 sudo apt-get install git 可选工具: sudo apt-get install emacs sudo apt-get install openssh-server Vmware 工具(可选) sudo apt-get install gcc ...
java版飞机大战源码 Cocos2d-x 阶段总结 一、背景 主要用来记录最近对于Cocos2d-x的了解情况,由于接下来会暂停这方面的学习而去完成其他任务,所以以防再次学习时没有线索,就将近几日的学习情况记录下来,方便之后...
如果你有过在linux系统上源码安装某款软件的经历,那么肯定对这三部曲一点都不会陌生——配置(configure)、编译(make)、安装(make install)。几乎每次都是机器人般的操作,这背后其实是make(准确地说应该是GNU Make...
java安卓安卓源码特效NFSIISE 具有 3D 加速和 TCP 协议的 Need For Speed:trade_mark: II SE 游戏的跨平台包装器! GIT 克隆: 不要忘记更新子模块: $ git submodule init $ git submodule update OpenGL 默认情况...