1.设置编译选项为make -j5 TARGET_ARCH=x86 TARGET_PRODUCT=generic TARGET_SIMULATOR=false TARGET_BUILD_TYPE=release TARGET_OS=linux LOCAL_PRELINK_MODULE=false
2.build/core/envsetup.mk 中 91行 设置为x86(该步骤可以省略)
3.修改build/tools/dexpreopt目录中Android.mk为Android-arm.mk,不编译该模块(该模块以来与emulator)。
make: *** No rule to make target `out/target/product/generic/obj/lib/libdbus.so', needed by `out/target/product/generic/obj/EXECUTABLES/auth-agent_intermediates/LINKED/auth-agent'. Stop.
原因:libdbus.so模块未编译。external/dbus/dbus中mk文件只对TARGET_ARCH = arm时又作用。
4.修改external/dbus/dbus目录中Android.mk,TARGET_ARCH = x86,编译该模块。
system/core/libcutils/memset32.S: Assembler messages:
system/core/libcutils/memset32.S:38: Error: unknown pseudo-op: `.fnstart'
.
.
.
system/core/libcutils/memset32.S:93: Error: unknown pseudo-op: `.fnend'
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libcutils_intermediates/memset32.o] Error 1
原因:system/core/libcutils模块在TARGET_SIMULATOR=false时,对arm相关代码有依赖,依赖代码如下:
LOCAL_SRC_FILES := $(commonSources) memset32.S atomic-android-arm.S mq.c /
ashmem-dev.c
LOCAL_C_INCLUDES := $(KERNEL_HEADERS)
5.修改system/core/libcutils目录中Android.mk中78行(ifneq ($(TARGET_SIMULATOR),true)),暂使用TARGET_SIMULATOR=true编译。
target thumb C: libwpa_client <= external/wpa_supplicant/wpa_ctrl.c
target thumb C: libwpa_client <= external/wpa_supplicant/os_unix.c
cc1: error: unrecognized command line option "-mabi=aapcs-linux"
cc1: error: unrecognized command line option "-mabi=aapcs-linux"
target thumb C: libnetutils <= system/core/libnetutils/dhcpclient.c
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwpa_client_intermediates/wpa_ctrl.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libwpa_client_intermediates/os_unix.o] Error 1
原因:不识别的命令行选项-mabi=aapcs-linux
6.修改external/wpa_supplicant/目录中Android.mk 20行,去掉-mabi=aapcs-linux选项.
external/dbus/dbus/dbus-sysdeps-util-unix.c:48:27: error: sys/syslimits.h: No such file or directory
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libdbus_intermediates/dbus-sysdeps-util-unix.o] Error 1
原因:定义了HAVE_SYS_SYSLIMITS_H该宏,但无法找到sys/syslimits.h头文件。
7.修改external/dbus/config.h中197行,#undef HAVE_SYS_SYSLIMITS_H。
system/core/debuggerd/crashglue.S:5: Error: no such instruction: `ldr r0,=0xa5a50000'
system/core/debuggerd/crashglue.S:6: Error: no such instruction: `ldr r1,=0xa5a50001'
.
.
.
system/core/debuggerd/crashglue.S:28: Error: no such instruction: `b .'
target arm C: libc <= bionic/libc/bionic/malloc_leak.c
make: *** [out/target/product/generic/obj/EXECUTABLES/crasher_intermediates/crashglue.o] Error 1
原因:system/core/debuggerd模块依赖于arm.
8.修改system/core/debuggerd模块中的Android.mk.重命名为Android-arm.mk,暂不编译该模块。
9.修改bionic/libc/tools目录下的gensyscalls.py,生成x86架构的相关文件。
修改bionic/libc目录下的Android.mk文件,设置为x86.
make: *** 没有规则可以创建“out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/arch-x86/bionic/exidx_dynamic.o”需要的目标“bionic/libc/arch -x86/bionic/exidx_dynamic.c”。 停止。
原因:bionic/libc/arch-x86/bionic目录下无exidx_dynamic.c文件。
10.修改bionic/libc/目录中Android.mk文件,去掉“arch-x86/bionic/exidx_dynamic.c /”。
/usr/include/gnu/stubs-32.h:7:3: error: #error Applications may not define the macro _LIBC
In file included from /usr/include/stdio.h:75,
from bionic/libc/bionic/malloc_leak.c:30:
/usr/include/libio.h:354: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘attribute_hidden’
/usr/include/libio.h:355: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘attribute_hidden’
/usr/include/libio.h:356: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘attribute_hidden’
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/bionic/malloc_leak.o] Error 1
原因:bionic/libc/Android.mk中设置了libc_common_cflags := -D_LIBC=1, 与/usr/include/gnu/stubs-32.h有冲突。
11.修改bionic/libc/Android.mk,去掉libc_common_cflags中 -d_LIBC=1.
In file included from bionic/libc/bionic/libc_init_dynamic.c:54:
bionic/libc/bionic/pthread_internal.h:45: 错误: expected specifier-qualifier-list before ‘__pthread_cleanup_t’
In file included from bionic/libc/bionic/libc_init_dynamic.c:56:
bionic/libc/bionic/libc_init_common.h:41: 错误: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
bionic/libc/bionic/libc_init_dynamic.c:60: 错误: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’
make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/bionic/libc_init_dynamic.o] 错误 1
原因:暂未调查。
分享到:
相关推荐
Android-x86源码的获得及编译,移植Android到x86架构的机器上!
Google官方给的Android源码下载目录是关于ARM的,关于X86-Android源码的下载已经在之前的文档中说明了,由于我公司做的是定制Android系统,在X86架构上,所以有关文档是针对x86架构的。希望对你学习android的移植有...
android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6
x264在android arm32 arm64 x86各种平台静态库的编译,运行build32.sh就能编译arm32的库
mac电脑编译ffmpeg的脚本https://blog.csdn.net/github_35041937/article/details/83754270
如何下载android-x86源码,以及如何adb连接
openCV4.6.0+android-ndk-r22-windows-x86_64编译的arm64-v8a动、静态库 https://blog.csdn.net/aggs1990/article/details/124527556 CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者交流使用...
最新源码编译的ijkplayer android armev7a x86 库 支持 https,和更多音视频格式 avi rmvb等
openCV4.6.0+android-ndk-r22-windows-x86_64编译动、静态库(armeabi-v7a) CSDN审核可能较慢,如无法下载,可以过段时间再回来看下 仅供相关爱好者交流使用,请于下载24小时内删除
在android4.4源码树下编译完成的libcurl.a 包含所有平台 支持模拟器 x86等平台上的使用, 通过java jni调用。libcurl是一个功能非常强大的c 开源网络库
资源文件为Mac下编译Android平台的FFmpeg脚本,支持动态(so)库、静态(a)库,支持架构:arm(armv7-a)、arm64、x86、x86_64,NDK版本需大等于r15c。 脚本为原创,若积分不够,可参考原文:...
android-4.4-源码编译 linux-x86/bin目录下的工具 包含make_ext4fs工具;unyaffs;imgdiff;android工具
ffmpeg版本4.3.1,openssl版本1.1.1i, android cup架构支持armeabi-v7a,arm64-v8a,x86,x86_64,ffmpeg和openssl都是基于Android API level 21编译的。自测播放本地视频文件,http视频文件和https视频文件均可正常...
编译后的android各平台fftw静态库。x86 x86_64 mips mips64 armeabi armeabi-v7a arm64-v8a
android x86编译的图片文档,希望对大家有所帮助
libredwg androidstudio交叉编译工程 在安卓下可以打开dwg文件 或者不知道如何交叉编译工程的同学也可以参考这个工程(请看2) 1: 下载解压,直接用androidstudio导入,然后直接点击build->make project 即可生成 ...
ffmpeg源码3.4.2,已编译好,里面含有教程和x86_64,3.4.2源码。
Qt+openCV学习笔记(十三)openCV4.5.5+android-ndk-r22-windows-x86_64编译的armeabi-v7a动态库 https://blog.csdn.net/aggs1990/article/details/124526728 CSDN审核可能较慢,如无法下载,可以过段时间再回来看...
ffmpeg6.1安卓交叉编译库 解压查看FFmpegLib/src/main/jniLibs/ 目录下的 arm64-v8a armeabi-v7a x86 x86_64 工程里有调用的示例,可以直接编译。
包含 armeabi-v7a arm64-v8a x86 架构。 已在 Android Studio 上测试。使用NDK编译。