1.Purple Pi OH又开外挂!低压低压带你搭建编译环境及编译Android 11固件
2.在android4.0.几的编编程版本上会出现这个问题,在线求解答
Purple Pi OH又开外挂!带你搭建编译环境及编译Android 11固件
本文主要探讨如何在Purple Pi OH开发板上搭建Android 固件的译a源码编译环境。对于初次接触嵌入式Linux开发的低压低压人来说,与STM开发相比,编编程使用RK芯片开发需要在Linux虚拟机中进行,译a源码程序员网站模板源码这涉及到内核版本选择、低压低压编译工具链配置等多个步骤。编编程尽管繁琐,译a源码但这是低压低压必要的,因为Linux虚拟机为RK开发提供了诸多优势,编编程如提高编译效率和提供稳定、译a源码可管理的低压低压合约 源码开发环境。
首先,编编程获取开发板资料和源码,译a源码通常包括芯片手册和Android SDK。然后,通过VMware或VirtualBox创建Linux虚拟机,配置编译环境,cvs源码推荐配置Android 的主机。接着,需要在虚拟机和Windows之间传输文件,通常通过共享文件夹实现,这便于在两个操作系统间快速操作源码。
在源码解压和编译过程中,sup 源码文章详细解释了如何解压和编译uboot,以及针对HDMI或MIPI显示屏的kernel编译方法。编译kernel时,需要注意内存分配和电压选择。最后,通过一系列命令编译Android系统并生成固件,pinbar 源码包括内核选项的修改和固件打包。整个过程虽然复杂,但掌握后能确保顺利开发和烧录RK固件。
在android4.0.几的版本上会出现这个问题,在线求解答
在尝试编译Android 4.0.x版本的源码时,遇到的问题多种多样。以下是将这些问题及其解决方案列举出来的内容,条目之间换行,以清晰的条目编号呈现。
1. 错误:/usr/include/gnu/stubs.h:7:: error: gnu/stubs-.h: No such file or directory
解决:sudo apt-get install libc6-dev-i
2. 错误:make: *** [out/host/linux-x/obj/EXECUTABLES/acp_intermediates/acp] error 1
解决:sudo apt-get install g++-4.4-multilib
3. 错误:external/clearsilver/cgi/cgi.c:: fatal error: zlib.h: No such file or directory
解决:sudo apt-get install zlib1g-dev
4. 错误:/usr/bin/ld: cannot find -lz
解决:sudo apt-get install libz1-dev
5. 错误:bison -d -o out/host/linux-x/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
解决:sudo apt-get install bison
6. 错误:Lex: aidl <= frameworks/base/tools/aidl/aidl_language_l.l
解决:sudo apt-get install flex
7. 错误:/usr/bin/ld: cannot find -lncurses
解决:sudo apt-get install libncurses5-dev
8. 错误:prebuilt/linux-x/sdl/include/SDL/SDL_syswm.h:: fatal error: X/Xlib.h: No such file or directory
解决:sudo apt-get install libx-dev
9. 错误:sh: gperf: not found
解决:sudo apt-get install gperf
. 错误:build/core/java.mk:9: *** bin: Target java module does not define any source or resource files. Stop.
解决:删除源码根目录下的bin文件夹,这个文件夹是导入eclipse时创建的。
. 错误:/usr/bin/ld: cannot find -lX
解决:sudo ln -s /usr/lib/i-linux-gnu/libX.so.6 /usr/lib/i-linux-gnu/libX.so
. 错误:development/tools/emulator/opengl/host/libs/Translator/GLDispatch.cpp:: fatal error: GL/glx.h: No such file or directory
解决:sudo apt-get install libgl1-mesa-dev
. 错误:host SharedLib: libEGL_translator (out/host/linux-x/obj/lib/libEGL_translator.so)
解决:sudo apt-get install libglu1-mesa-dev
. 错误:host StaticLib: libGLcommon (out/host/linux-x/obj/STATIC_LIBRARIES/libGLcommon_intermediates/libGLcommon.a)
解决:sudo ln -s /usr/lib/i-linux-gnu/mesa/libGL.so.1 /usr/lib/i-linux-gnu/libGL.so
. 错误:make: *** [out/host/linux-x/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
后来发现了,原来是Ubuntu .里的gcc和g++版本太高了,于是执行下面的操作:
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo rm -rf /usr/bin/gcc /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
把默认的4.6版本换为了4.4,继续编译源码,又出现了另一个错误,大致提示为:
g++ selected multilib '' not installed
继续奋战吧,安装相应的工具吧:sudo apt-get install g++-4.4-multilib,现在正在make -j8(开启多线程编译(不推荐),可能有时候会出现问题,最好是直接make)
2. 解决各种依赖问题
首先安装一些库
?View Code BASH
1 sudo apt-get install gnupg flex bison gperf libsdl1.2-dev libesd0-dev
2 sudo apt-get install libwxgtk2.6-dev squashfs-tools build-essential
3 sudo apt-get install zlib1g-dev pngcrush schedtool ia-libs libncurses5-dev
这些库可能不全,如果出现问题,再google一下吧
3. error: “_FORTIFY_SOURCE” redefined [-Werror]
这个问题,据说与gcc版本有关,4.4版不会出现。
后来在google code上找到了使用gcc 4.6编译的方法
修改build/core/combo/HOST_linux-x.mk文件line
?View Code BASH
1 -HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
2 +HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
这是CyanogenMod打上的补丁
4. No rule to make target ‘out/target/product/generic/obj/lib/libcamera.so’
修改 /home/Android-2.3.4/frameworks/base/services/camera/libcameraservice/Android.mk,USE_CAMERA_STUB:=false -> true
?View Code BASH
1 LOCAL_PATH:= $(call my-dir)
2
3 # Set USE_CAMERA_STUB if you don't want to use the hardware camera.
4
5 # force these builds to use camera stub only
6 ifneq ($(filter sooner generic sim,$(TARGET_DEVICE)),)
7 USE_CAMERA_STUB:=true
8 endif
9
#########CHANGE THIS LINE############
USE_CAMERA_STUB:=true
ifeq ($(USE_CAMERA_STUB),)
USE_CAMERA_STUB:=false
endif