Android 4编译错误汇总.docx

上传人:b****6 文档编号:5769385 上传时间:2023-01-01 格式:DOCX 页数:12 大小:20.07KB
下载 相关 举报
Android 4编译错误汇总.docx_第1页
第1页 / 共12页
Android 4编译错误汇总.docx_第2页
第2页 / 共12页
Android 4编译错误汇总.docx_第3页
第3页 / 共12页
Android 4编译错误汇总.docx_第4页
第4页 / 共12页
Android 4编译错误汇总.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

Android 4编译错误汇总.docx

《Android 4编译错误汇总.docx》由会员分享,可在线阅读,更多相关《Android 4编译错误汇总.docx(12页珍藏版)》请在冰豆网上搜索。

Android 4编译错误汇总.docx

Android4编译错误汇总

2.Q:

frameworks/base/libs/utils/RefBase.cpp:

483:

67:

error:

passing‘constandroid:

:

RefBase:

:

weakref_impl’as‘this’argumentof‘voidandroid:

:

RefBase:

:

weakref_impl:

:

trackMe(bool,bool)’discardsqualifiers[-fpermissive]

make:

***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o]Error1

解决方法:

$geditframeworks/base/libs/utils/Android.mk

修改以下语句

LOCAL_CFLAGS+=-DLIBUTILS_NATIVE=1$(TOOL_CFLAGS)

LOCAL_CFLAGS+=-DLIBUTILS_NATIVE=1$(TOOL_CFLAGS)–fpermissive

3.Q:

arm-eabi-gcc:

errortryingtoexec'cc1':

execvp:

Nosuchfileordirectory

make:

***[out/target/product/generic/obj/lib/crtbegin_dynamic.o]Error1

如果之前的依赖包都已经安装成功的话,此处应该是交叉编译工具权限的问题。

这个问题只要在文章开头lunch时执行了赋予权限命令,就应该不会遇到了。

4.Q:

:

0:

0:

error:

"_FORTIFY_SOURCE"redefined[-Werror]

:

0:

0:

note:

thisisthelocationofthepreviousdefinition

cc1plus:

allwarningsbeingtreatedaserrors

make:

***[out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]Error1

此处编译错误是由于ubuntu11.10采用了GCC4.6.1导致的。

解决方法:

修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:

将以下语句

HOST_GLOBAL_CFLAGS+=-D_FORTIFY_SOURCE=0

修改为

HOST_GLOBAL_CFLAGS+=-U_FORTIFY_SOURCE-D_FORTIFY_SOURCE=0

 

make:

***[out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach.o]错误1

解决办法是:

找到frameworks/compile/slang/slang_rs_export_foreach.cpp:

的247行,并将本行注释掉即可继续编译。

make:

***[out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]Error1

后来发现了,原来是Ubuntu11.10里的gcc和g++版本太高了,于是执行下面的操作:

sudoapt-getinstallgcc-4.4

sudoapt-getinstallg++-4.4

sudorm-rf/usr/bin/gcc/usr/bin/g++

sudoln-s/usr/bin/gcc-4.4/usr/bin/gcc

sudoln-s/usr/bin/g++-4.4/usr/bin/g++

把默认的4.6版本换为了4.4,继续编译源码,又出现了另一个错误,大致提示为:

g++selectedmultilib'32'notinstalled

继续奋战吧,安装相应的工具吧:

sudoapt-getinstallg++-4.4-multilib,现在正在make-j8在我的i5/4G机子里跑着。

make:

***[out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o]Error1

解决这个问题需要修改文件如下:

把"#include"添加到linker.cpp文件头部。

这样就可以编译完成了。

1.错误一:

error:

‘ptrdiff_t’doesnotnameatype

Infileincludedfromexternal/gtest/src/../include/gtest/gtest-param-test.h:

157:

0,

                fromexternal/gtest/src/../include/gtest/gtest.h:

69,

                fromexternal/gtest/src/gtest_main.cc:

32:

external/gtest/src/../include/gtest/internal/gtest-param-util.h:

122:

11:

error:

‘ptrdiff_t’doesnotnameatype

Infileincludedfromexternal/gtest/src/../include/gtest/gtest-param-test.h:

157:

0,

                fromexternal/gtest/src/../include/gtest/gtest.h:

69,

                fromexternal/gtest/src/../src/gtest.cc:

34,

                fromexternal/gtest/src/gtest-all.cc:

36:

external/gtest/src/../include/gtest/internal/gtest-param-util.h:

122:

11:

error:

‘ptrdiff_t’doesnotnameatype

Infileincludedfromexternal/gtest/src/gtest-all.cc:

38:

0:

解决方法:

$viexternal/gtest/src/../include/gtest/internal/gtest-param-util.h

#include

2.错误二:

undefinedreferenceto`pthread_mutexattr_destroy'

hostC++:

libgtest_host<=external/gtest/src/gtest-all.cc

true

hostC++:

libgtest_main_host<=external/gtest/src/gtest_main.cc

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Signals.o):

Infunction`PrintStackTrace':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Unix/Signals.inc:

219:

undefinedreferenceto`dladdr'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Unix/Signals.inc:

231:

undefinedreferenceto`dladdr'

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Threading.o):

Infunction`llvm:

:

llvm_execute_on_thread(void(*)(void*),void*,unsignedint)':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Threading.cpp:

96:

undefinedreferenceto`pthread_create'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Threading.cpp:

91:

undefinedreferenceto`pthread_attr_setstacksize'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Threading.cpp:

100:

undefinedreferenceto`pthread_join'

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o):

Infunction`MutexImpl':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:

69:

undefinedreferenceto`pthread_mutexattr_init'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:

75:

undefinedreferenceto`pthread_mutexattr_settype'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:

80:

undefinedreferenceto`pthread_mutexattr_setpshared'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:

89:

undefinedreferenceto`pthread_mutexattr_destroy'

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o):

Infunction`llvm:

:

sys:

:

MutexImpl:

:

tryacquire()':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:

143:

undefinedreferenceto`pthread_mutex_trylock'

collect2:

ldreturned1exitstatus

make:

***[out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader]Error1

make:

***Waitingforunfinishedjobs....

解决方法:

$viexternal/llvm/llvm-host-build.mk

LOCAL_LDLIBS:

=-lpthread-ldl

下面这个解决方法没成功,会有新的错误:

errorsagain:

can'tfindthreads.hfileordir.

$viexternal/llvm/lib/Support/Android.mk

LOCAL_C_INCLUDES+=system/core/include/cutils

LOCAL_SHARED_LIBRARIES:

=libcutil

$viexternal/llvm/lib/Support/Mutex.cpp

#include

$viexternal/llvm/lib/Support/Threading.cpp

#include

3.错误三:

error:

variable‘ParamName’setbutnotused[-Werror=unused-but-set-variable]

frameworks/compile/slang/slang_rs_export_foreach.cpp:

247:

23:

error:

variable‘ParamName’setbutnotused[-Werror=unused-but-set-variable]

cc1plus:

allwarningsbeingtreatedaserrors

解决方法:

$viframeworks/compile/slang/Android.mk

#local_cflags_for_slang:

=-Wno-sign-promo-Wall-Wno-unused-parameter-Werror

local_cflags_for_slang:

=-Wno-sign-promo-Wall-Wno-unused-parameter

本文介绍在ubuntu11.10系统下编译android2.3.3源码,编译之前请确定上两篇文章(

准备工作完成后,开始编译工作。

下载下来的源码有5G多,如果按照我之前写的获取源码的话,源码目录为~/Android/source

一、环境设置

wayne@wayne-pc:

~/Android/source$sourcebuild/envsetup.sh

includingdevice/htc/passion/vendorsetup.sh

includingdevice/samsung/crespo/vendorsetup.sh

wayne@wayne-pc:

~/Android/source$lunchfull-eng

在lunch时,如果提示permissiondenied权限不够的话,需要在源码根目录下执行,赋予目录下所有文件权限

wayne@wayne-pc:

~/Android/source$sudochmod-R777*

这时候会lunch指令会打印出如下所示文段:

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=2.3.3

TARGET_PRODUCT=full

TARGET_BUILD_VARIANT=eng

TARGET_SIMULATOR=false

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

HOST_ARCH=x86

HOST_OS=linux

HOST_BUILD_TYPE=release

BUILD_ID=GRI40

============================================

一、开始编译

编译过程可能会出现许多错误而中止,在此wayne将会把所有遇到的问题以及解决方法一一贴出来,以供以后参考。

1.Q:

wayne@wayne-pc:

~/Android/source$make-j2

============================================

PLATFORM_VERSION_CODENAME=REL

PLATFORM_VERSION=2.3.3

TARGET_PRODUCT=full

TARGET_BUILD_VARIANT=eng

TARGET_SIMULATOR=false

TARGET_BUILD_TYPE=release

TARGET_BUILD_APPS=

TARGET_ARCH=arm

HOST_ARCH=x86

HOST_OS=linux

HOST_BUILD_TYPE=release

BUILD_ID=GRI40

============================================

Checkingbuildtoolsversions...

build/core/main.mk:

76:

************************************************************

build/core/main.mk:

77:

Youareattemptingtobuildona32-bitsystem.

build/core/main.mk:

78:

Only64-bitbuildenvironmentsaresupportedbeyondfroyo/2.2.

build/core/main.mk:

79:

************************************************************

build/core/main.mk:

80:

***stop。

停止。

解决方法:

cd到源码根目录,执行:

$geditbuild/core/main.mk

找到

ifneq(64,$(findstring64,$(build_arch)))

将其修改为

ifneq(i686,$(findstringi686,$(build_arch)))

然后依次修改以下四个make文件:

external/clearsilver/cgi/Android.mk

external/clearsilver/java-jni/Android.mk

external/clearsilver/util/Android.mk

external/clearsilver/cs/Android.mk

将其中的

LOCAL_CFLAGS+=-m64

LOCAL_LDFLAGS+=-m64

修改为

LOCAL_CFLAGS+=-m32

LOCAL_LDFLAGS+=-m32

2.Q:

frameworks/base/libs/utils/RefBase.cpp:

483:

67:

error:

passing‘constandroid:

:

RefBase:

:

weakref_impl’as‘this’argumentof‘voidandroid:

:

RefBase:

:

weakref_impl:

:

trackMe(bool,bool)’discardsqualifiers[-fpermissive]

make:

***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o]Error1

解决方法:

$geditframeworks/base/libs/utils/Android.mk

修改以下语句

LOCAL_CFLAGS+=-DLIBUTILS_NATIVE=1$(TOOL_CFLAGS)

LOCAL_CFLAGS+=-DLIBUTILS_NATIVE=1$(TOOL_CFLAGS)–fpermissive

3.Q:

arm-eabi-gcc:

errortryingtoexec'cc1':

execvp:

Nosuchfileordirectory

make:

***[out/target/product/generic/obj/lib/crtbegin_dynamic.o]Error1

如果之前的依赖包都已经安装成功的话,此处应该是交叉编译工具权限的问题。

这个问题只要在文章开头lunch时执行了赋予权限命令,就应该不会遇到了。

4.Q:

:

0:

0:

error:

"_FORTIFY_SOURCE"redefined[-Werror]

:

0:

0:

note:

thisisthelocationofthepreviousdefinition

cc1plus:

allwarningsbeingtreatedaserrors

make:

***[out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o]Error1

此处编译错误是由于ubuntu11.10采用了GCC4.6.1导致的。

解决方法:

修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:

将以下语句

HOST_GLOBAL_CFLAGS+=-D_FORTIFY_SOURCE=0

修改为

HOST_GLOBAL_CFLAGS+=-U_FORTIFY_SOURCE-D_FORTIFY_SOURCE=0

 

编译时还有可能出现类似的错误,根据错误提示的关键词比如g++错误、jre错误等,都是些细节问题,比较好解决。

经过两小时左右的等待后,终于顺利完成。

编译成功后会生成system.img等镜像文件,下面是编译完成提示:

Targetsystemfsimage:

out/target/product/generic/obj/PACKAGING/systemimage_intermediates/system.img

Installsystemfsimage:

out/target/product/generic/system.img

Installedfilelist:

out/target/product/generic/installed-files.txt

 

三、启动所编译的系统

编译完之后会在out/target/product/generic目录下生成system.imgramdisk.imguserdata.img三个镜像文件。

在启动模拟器之前,需要先为模拟器系统设置环境变量,执行gedit~/.bashrc,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1