http://www.huomo.cn/developer/article-b8f0.html
1. 参考文档
1.1 Obtaining MIPS Android Source Code (http://www.mipsandroid.com/documents/show/1)
1.2 Compiling Android for MIPS (http://www.awakecoding.com/index.php?option=com_content&view=article&id=21:compiling-android-for-mips)
1.3 移植Android到MIPS平台(续) (http://my.unix-center.net/~Simon_fu/?p=557)
2. 环境准备
2.1 安装ubuntu(使用virtulbox)
2.2 安装其他需要工具
sudo apt-get install gcc build-essential git-core libreadline-dev zip curl wget valgrind python eclipse ecj flex bison gperf libsdl-dev libwxgtk2.6-dev libgmp3-dev libsds-dev clearsilver-dev libclearsilver-perl python-clearsilver gcc-multilib g++-multilib
2.3 安装java jdk
sudo apt-get sun-java5-jdk
sudo update-alternatives --config java (选择刚安装完的JDK目录)
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
2.4 安装mips-4.3 toolchain
此步骤可省略,使用android自带的prebuilt toolchain即可 3. 源码下载
$ curl http://android.git.kernel.org/repo >~/bin/repo
$ chmod a+x ~/bin/repo
$ mkdir mipsandroid
$ cd mipsandroid
$ repo init -u git://public.mipsandroid.com/mips/platform/manifest.git -b mips-eclair
$ repo sync 4. 编译
4.1 准备
在mipsandroid下添加env.sh如下
export TOP='pwd'
export J2RE_HOME=/usr/lib/jvm/java-1.5.0-sun/jre
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
export ANDROID_JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
source build/envsetup.sh
export USE_CCACHE=1
export TARGET_ARCH_VERSION=mips32r2
export TARGET_ARCH=mips
export ANDROID_PRODUCT_OUT=~/android/mipsandroid/out/target/product/generic
export PATH=$PATH:~/android/mipsandroid/out/host/linux-x86/bin/ 4.2 步骤
source env.sh
make
4.3 此时已生成emulator和对应的system.img ramdisk.img userdata.img(kernel-qemu使用prebuilt的) 4.3问题总结
之前由于PRODUCT指定不对,造成编译出的init使用了hard float point的libc,重新make clean;make解决 5.编译SDK
5.1 执行
在4步骤完成后
make sdk 5.2 问题总结
5.2.1 提示crtbegin_so.S找不到
修改bionic/libc/Android.mk如下,注释掉
#ifeq ($(TARGET_ARCH),mips)
# we only need begin_so/end_so for mips, since it needs an appropriate .init
# section in the shared library with a function to call all the entries in
# .ctors section.
#GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o
#$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtbegin_so.S
# @mkdir -p $(dir $@)
# $(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $<
#ALL_GENERATED_SOURCES += $(GEN) #GEN := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o
#$(GEN): $(LOCAL_PATH)/arch-$(TARGET_ARCH)/bionic/crtend_so.S
# @mkdir -p $(dir $@)
# $(TARGET_CC) $(libc_crt_target_cflags) -o $@ -c $<
#ALL_GENERATED_SOURCES += $(GEN)
#endif # TARGET_ARCH == mips 5.2.2 生成的linux sdk使用不正常,发现kernel-qemu拷贝的是arm的,将其替换即可 6.编译windows SDK
6.1 步骤
1)将mipsandroid拷贝到cygwin里
2)windows安装java jdk
3)修改env.sh
export TOP='pwd'
export J2RE_HOME=/cygdrive/c/Java/jdk1.5.0_20/jre
export JAVA_HOME=/cygdrive/c/Java/jdk1.5.0_20
export ANDROID_JAVA_HOME=/cygdrive/c/Java/jdk1.5.0_20
source build/envsetup.sh
export TARGET_ARCH_VERSION=mips32r2
export TARGET_ARCH=mips
export ANDROID_PRODUCT_OUT=~/android/mipsandroid/out/target/product/generic
export PATH=$PATH:/cygdrive/c/Java/jdk1.5.0_20/bin
4)修改make_windows_sdk.sh,增加acp编译(android 2.2),修改cygwin目录,删除adb/fastboot编译(android 2.2),如下 a) CYG_MGWZ_PATH=/cygdrive/c/cygwin/bin/mgwz.dll -> CYG_MGWZ_PATH=/cygdrive/e/cygwin/bin/mgwz.dll b) SDK_NUMBER=`echo $filename | sed -n 's/^.*_\([^_./]\+\)_[^_.]*\..*$/\1/p'` -> SDK_NUMBER=2.2 c) aapt adb aidl \
etc1tool \
prebuilt \
dexdump dmtracedump \
fastboot \
->
acp aapt aidl \
etc1tool \
prebuilt \
dexdump dmtracedump \ d) cp -v out/host/windows-x86/bin/*.{exe,dll} "$TOOLS"/ -> cp -v out/host/windows-x86/bin/*.exe "$TOOLS"/ e)
[[ -n $NEED_MGWZ ]] && cp -v $CYG_MGWZ_PATH "$TOOLS"/ ->
[[ -n $NEED_MGWZ ]] && cp -v $CYG_MGWZ_PATH "$TOOLS"/
cp -v /cygdrive/e/cygwin/bin/cygz.dll "$TOOLS"/
cp -v /cygdrive/e/cygwin/bin/cygwin1.dll "$TOOLS"/ f)
[[ -n $NEED_MGWZ ]] && cp -v "$TOOLS"/mgwz.dll "$PLATFORM_TOOLS"/
->
[[ -n $NEED_MGWZ ]] && cp -v "$TOOLS"/mgwz.dll "$PLATFORM_TOOLS"/
cp -v "$TOOLS"/cygz.dll "$PLATFORM_TOOLS"/
cp -v "$TOOLS"/cygwin1.dll "$PLATFORM_TOOLS"/ 5)修改external/sqlite/dist/shell.c
#if defined(HAVE_READLINE) && HAVE_READLINE==1 -> #if 0
# include <readline/readline.h>
# include <readline/history.h>
6.2 安装使用
kernel-qemu还是arm的,替换成mips的
分享到:
相关推荐
### React Native App中mips交叉编译工具问题 #### 背景介绍 React Native 是一个用于构建原生移动应用的框架,它允许开发者使用JavaScript和React来开发跨平台的应用程序。React Native 应用的运行依赖于Native...
MIPS64EL-Linux-Android 是一个针对MIPS64架构的交叉编译工具链,主要用于在Linux环境下构建适用于Android平台的应用程序或系统库。这个工具链允许开发者在非MIPS64设备上(例如x86或ARM平台)构建针对MIPS64处理器...
总结来说,"MIPS64el-linux-android-4.9"是一个关键组件,用于在Android Studio环境下构建支持MIPS64架构设备的应用。如果遇到缺失此工具链的错误,应按照描述中的指示下载并解压文件,更新SDK的NDK工具链目录,以...
标题"MIPS64EL-Linux-Android"涉及的是一个针对MIPS64架构的Linux Android交叉编译环境。MIPS(Microprocessor without Interlocked Pipeline Stages)是一种精简指令集计算机(RISC)架构,主要应用于嵌入式系统,...
标题中的“mips64el-linux-android-4.9.rar”是一个压缩文件,通常用于存储一组相关文件,便于传输和管理。在这个特定的上下文中,它似乎与Android开发相关,特别是针对MIPS64EL架构的Linux Android环境。"4.9"可能...
"MIPS64EL-Linux-Android-4.9.7z"是一个针对Android开发的工具链压缩包,主要用于解决在Android Studio中遇到的NDK编译问题和AVD(Android虚拟设备)创建故障。这个工具链是为MIPS64(小端模式)架构设计的,这意味...
关于MIPS64el-Linux-Android编译平台的知识点: 1. **MIPS64架构**:MIPS64是MIPS架构的一个64位扩展,支持64位寻址和运算,广泛应用于路由器、网络设备、嵌入式系统和服务器。 2. **Linux内核版本4.9**:这是一个...
在Android生态系统中,支持MIPS64的设备需要对应的NDK工具链来编译和运行原生代码。 描述中提到,当NDK升级到版本18时,系统可能报告缺少针对MIPS64平台的构建工具。这意味着在新版本的NDK中,预构建的MIPS64支持...
标题 "mips64el-linux-android-4.9(mac).zip" 暗示这是一个针对MIPS64架构的Linux Android交叉编译工具链,版本为4.9,并且是为Mac OS平台设计的。在Android开发中,NDK(Native Development Kit)是一套用于在...
描述中的“ndk构建”意味着这个压缩包可能包含了用于编译和构建MIPS64EL架构设备上运行的原生Android应用所需的工具、库和头文件。在Android开发中,NDK的主要用途包括: 1. **性能关键应用**:当应用程序需要高...
1. **设置Android编译环境**: - 使用NDK的`ndk-build`命令配置和编译项目。首先,确保你的NDK版本与linphone支持的版本兼容。 - 在linphone-android目录中运行: ``` export ANDROID_NDK=/path/to/your/ndk ...
ndk-build中toolchains目录下的mips64el-linux-android-4.9和mipsel-linux-android-4.9,可以解决NDK17版本以上编译出现的No toolchains found in the NDK