android 编译总结
来源:互联网 发布:南京大学软件学院 校区 编辑:程序博客网 时间:2024/06/05 19:59
编译android的工程中,遇到了很多问题,在此总结一下,利于大家的查找:
一:需要一些需要预装的软件。
sudo apt-get install build-essential
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libc6-dev
sudo apt-get install patch
sudo apt-get install texinfo
sudo apt-get install libncurses-dev
sudo apt-get install git-core gnupg
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install ncurses-dev
sudo apt-get install zlib1g-dev
sudo apt-get install valgrind
二:在32位上编译gingerbread时,需要修改一些代码。
下载了android 2.3源码,但是当编译的时候,遇到了如下问题:
build/core/main.mk:77: You are attempting to build on a 32-bit system.
build/core/main.mk:78: Only 64-bit build environments are supported beyond froyo/2.2.
原因是编译gingerbread默认需要64位系统和Java6,在32位系统上修改下列文件能解决这个问题:
1. build/core/main.mk,查找下面部分
++++++++++++++++++++++++++++++++++++++++++
ifeq ($(BUILD_OS),linux)
build_arch := $(shell uname -m)
ifneq (64 ,$(findstring 64 ,$(build_arch)))
$(warning ************************************************************)
$(warning You are attempting to build on a 32-bit system.)
$(warning Only 64-bit build environments are supported beyond froyo/2.2.)
$(warning ************************************************************)
$(error stop)
endif
endif
+++++++++++++++++++++++++++++++++++
将64修改成 i686,注意 i必须是小写 。
2.依次修改下列文件
external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk
external/clearsilver/cs/Android.mk
在上述文件中查找如下变量,将m64修改成m32
LOCAL_CFLAGS += -m64
LOCAL_LDFLAGS += -m64
你也能在vim中快速替换:
:%s/m64/m32/g
三:编译过程中可能会遇到的问题。
1:编译遇到input error等问题,重新编译一下就可以了,或者把出问题的.so删除再编译,遇到的很多问题都是这样解决的。
2:fatal error: GL/glu.h: No such file or directory
sudo apt-get install libglu-dev
3:In file included from external/qemu/target-i386/kvm.c:19:
In file included from external/qemu/target-i386/kvm.c:19:
/usr/include/linux/kvm.h:215: error: field 'arch' has incomplete type
/usr/include/linux/kvm.h:383: error: field 'arch' has incomplete type
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/emulator-target-i386_intermediates/target-i386/kvm.o] 错误 1
google的解决方案:https://review.source.android.com/#change,22776
看来这个问题是只有在用 Ubuntu 11.04 版本编译的时候才会出现的问题,
幸好有好心人做了个补丁解决了这个问题.
只要在下载源码的目录下执行下面这句,然后再make就不会再出现这个错误了:
repo download platform/external/qemu 22776/1
- android 编译总结
- Android源码编译总结
- Android编译问题总结
- Android编译问题总结
- Android编译总结
- Android编译命令总结
- Android VLC 编译总结
- 编译Android源码总结
- Android opencore编译问题总结
- android编译系统学习总结
- android 4.0.3编译 总结
- ANDROID源码编译开发总结
- Android源码编译整理总结
- ANDROID源码编译开发总结 .
- android源码编译错误总结
- Android源码编译整理总结
- 编译 Android 源码问题总结
- android 源码 sdk 编译总结
- netdev_priv()详解
- OpenCV/paintlib/CImg/FreeImage/CxImage/SILLY/Corona/OpenIL/Libavg
- RDLC-Chart饼图上显示百分比
- C字符串和C++字符串
- smartGWT ListGrid分页页面组件GridPager
- android 编译总结
- 反汇编看内存布局来研究vc2005中多重继承及虚函数
- 美博客列iOS不具备的10大Android系统功能(转)
- 修改ini文件的批处理
- 为节省请求数而使用图标合成图
- 使用SQL整理INT型格式
- POJ2872 Spelling Be 快排+二分
- 52单片机中定时/计数器2的研究
- _KEYBOARD_INPUT_DATA