android icu4c 7.1编译报错,android4.0编译系统时候遇到的错误集

1、Android library 'XXX.so' not in prelink map 错误解决

在编译自己的Android library时可能会出现

library 'XXX.so' not in prelink map 错误,

这是由于Android的预编译设置引起的,/build/core/prelink-linux-arm.map文件描述了预编译的模块

需要修改所在文件夹下的android.mk文件

增加

LOCAL_PRELINK_MODULE := false

将预编译关闭,即可通过。

2、错误一:error: ‘ptrdiff_t’ does not name a type

In file included from external/gtest/src/../include/gtest/gtest-param-test.h:157:0,

from external/gtest/src/../include/gtest/gtest.h:69,

from external/gtest/src/gtest_main.cc:32:

external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11: error: ‘ptrdiff_t’ does not name a type

In file included from external/gtest/src/../include/gtest/gtest-param-test.h:157:0,

from external/gtest/src/../include/gtest/gtest.h:69,

from external/gtest/src/../src/gtest.cc:34,

from external/gtest/src/gtest-all.cc:36:

external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11: error: ‘ptrdiff_t’ does not name a type

In file included from external/gtest/src/gtest-all.cc:38:0:

解决方法:

$vi external/gtest/src/../include/gtest/internal/gtest-param-util.h

#include 3.错误二:undefined reference to `pthread_mutexattr_destroy'

host C++: libgtest_host <= external/gtest/src/gtest-all.cc

true

host C++: libgtest_main_host <= external/gtest/src/gtest_main.cc

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Signals.o): In function `PrintStackTrace':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Unix/Signals.inc:219: undefined reference to `dladdr'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Unix/Signals.inc:231: undefined reference to `dladdr'

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Threading.o): In function `llvm::llvm_execute_on_thread(void (*)(void*), void*, unsigned int)':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Threading.cpp:96: undefined reference to `pthread_create'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Threading.cpp:91: undefined reference to `pthread_attr_setstacksize'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Threading.cpp:100: undefined reference to `pthread_join'

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `MutexImpl':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:69: undefined reference to `pthread_mutexattr_init'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:75: undefined reference to `pthread_mutexattr_settype'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:80: undefined reference to `pthread_mutexattr_setpshared'

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:89: undefined reference to `pthread_mutexattr_destroy'

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `llvm::sys::MutexImpl::tryacquire()':

/home/aa/project/android4.0.1/external/llvm/lib/Support/Mutex.cpp:143: undefined reference to `pthread_mutex_trylock'

collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader] Error 1

make: *** Waiting for unfinished jobs....

解决方法:

$vi external/llvm/llvm-host-build.mk

LOCAL_LDLIBS := -lpthread -ldl

下面这个解决方法没成功,会有新的错误:errors again :can't find threads.h file or dir.

$ vi external/llvm/lib/Support/Android.mk

LOCAL_C_INCLUDES += system/core/include/cutils

LOCAL_SHARED_LIBRARIES := libcutil

$ vi external/llvm/lib/Support/Mutex.cpp

#include $ vi external/llvm/lib/Support/Threading.cpp

#include 4.错误三:error: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]

frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: error: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]

cc1plus: all warnings being treated as errors

解决方法:

$ vi frameworks/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

5、2.3以上系统使用JDK1.6,所以必须下载并设定其编译环境

vi ~/.bashrc

export JAVA_HOME=/usr/java/jdk1.6.0_23

export JRE_HOME=$JAVA_HOME/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/bin/tools.jar:$JRE_HOME/bin

export ANDROID_JAVA_HOME=$JAVA_HOME

6、Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

解决:

内存不足

7、external/jsilver/src/com/google/streamhtmlparser/util/JavascriptTokenBuffer.java:80: cannot find symbol

symbol  : method copyOf(char[],int)

解决:

把sdk从1.5升级到1.6

8、arm-eabi-4.4.3 version `GLIBC_2.11' not found

解决方法

prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc -mthumb-interwork -Ibionic/libc/private -o out/target/product/generic/obj/lib/crtbegin_dynamic.o -c bionic/libc/arch-arm/bionic/crtbegin_dynamic.S

prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/tls/i686/cmov/libc.so.6: version `GLIBC_2.11' not found (required by prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)

make: *** [out/target/product/generic/obj/lib/crtbegin_dynamic.o] 错误 1

这是在32位Ubuntu上编译引起的arm-eabi-4.4.3版本问题,所以需要修改arm-eabi-4.4.0:

$ mv arm-eabi-4.4.3 to arm-eabi-4.4.3.old

$ ln -s arm-eabi-4.4.0 arm-eabi-4.4.3

or:

升级glibc或者系统

9、

PassFailButtons.java:191: onCreateDialog(int,android.os.Bundle) in android.app.Activity cannot implement onCreateDialog(int,android.os.Bundle) in com.android.cts.verifier.PassFailButtons.PassFailActivity; attempting to assign weaker access privileges;

解决:

很可能是因为使用了openjdk,而非sun-java6-jdk,

10、

undefined reference to  __asprintf_chk

解决:

可能会由于stdio2.h导致编译错误。正确的stdio2.h是./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr/bits/stdio2.h文件,请重新设置PATH环境变量,将./prebuilt/linux-x86/toolchain/i686-linux-glibc2.7-4.4.3/sysroot/usr放在PATH的最前。

cp ./prebuilt/linux-x86/ toolchain/i686-unknown-linux-gnu-4.2.1/lib/libbfd.a ./out/host/linux-

x86/obj/STATIC_LIBRARIES/libbfd_intermediates/libbfd.a

可能 glibc版本不是最新的

11、

SDL init failure, reason is: No available video device .

解决:

原因是他依赖X11,可以进入图形化界面来运行。

12、

In file included from frameworks/base/include/utils/Vector.h:26,

from frameworks/base/include/utils/SortedVector.h:24,

from frameworks/base/include/utils/KeyedVector.h:24,

from frameworks/base/include/media/AudioParameter.h:21,

from frameworks/base/media/libmedia/AudioParameter.cpp:22:

frameworks/base/include/utils/TypeHelpers.h:33: error: template with C linkage

解决:

将definitionss.mk 文件中transform-cpp-to-o -isystem 改为 -I  如果有 -isystem好像其指定的目录

会当作标准系统库目录

后面又出现类似问题,干脆将这个文件中所有的-isystem都改成了-I

13、

external/icu4c/common/rbbi.cpp:295: error: cannot use typeid with -fno-rtti

external/icu4c/common/rbbi.cpp:295: error: cannot use typeid with -fno-rtti

解决:

去掉definitionss.mk 文件中 define transform-cpp-to-o 中的-fno-rtti \  行

16、

abi/cpp/include/cxxabi.h:44: error: invalid use of incomplete type 'struct std::type_info'

:0: error: forward declaration of 'struct std::type_info'

abi/cpp/include/cxxabi.h:51: error: invalid use of incomplete type 'struct std::type_info'

:0: error: forward declaration of 'struct std::type_info'

abi/cpp/include/cxxabi.h:58: error: invalid use of incomplete type 'struct std::type_info'

:0: error: forward declaration of 'struct std::type_info'

abi/cpp/include/cxxabi.h:65: error: invalid use of incomplete type 'struct std::type_info'

:0: error: forward declaration of 'struct std::type_info'

abi/cpp/include/cxxabi.h:72: error: invalid use of incomplete type 'struct std::type_info'

:0: error: forward declaration of 'struct std::type_info'

解决:

4.0比2.3根目录下多了abi目录,里面只有几个文件,type_info在该目录下typeinfo文件中定义了,

cxxabi.h也包含了这个文件,但不知道为什么报错,在cxxabi.h中添加class type_info 也不行,

后来把typeinfo文件和cxxabi.h中的定义都抽出,定义到一个common.h文件中,两个文件都包含这个文件,暂时规避了这个问题。

14、

ake:进入目录'/home/lijj/android/android-4.0.1'

target thumb C++: binderAddInts <= system/extras/tests/binder/benchmarks/binderAddInts.cpp

system/extras/tests/binder/benchmarks/binderAddInts.cpp:96: error: ISO C++ forbids declaration of 'cpu_set_t' with no type

system/extras/tests/binder/benchmarks/binderAddInts.cpp:96: error: expected ',' or '...' before '&' token

system/extras/tests/binder/benchmarks/binderAddInts.cpp: In function 'int main(int, char**)':

解决:

在binderAddInts.cpp文件开头添加

#ifndef _GNU_SOURCE

#define _GNU_SOURCE

#endif

并包含头文件#include 15、

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0_hisi/bin/arm-eabi-gcc -mthumb-interwork -Ibionic/libc/private -DCRT_LEGACY_WORKAROUND -Ibionic/libc/private -o out/target/product/generic/obj/lib/crtbegin_so.o -c bionic/libc/arch-arm/bionic/crtbegin_so.S

prebuilt/linux-x86/toolchain/arm-eabi-4.4.0_hisi/bin/arm-eabi-gcc -mthumb-interwork -Ibionic/libc/private -DCRT_LEGACY_WORKAROUND -Ibionic/libc/private -o out/target/product/generic/obj/lib/crtend_so.o -c bionic/libc/arch-arm/bionic/crtend_so.S

target SharedLib: libdl (out/target/product/generic/obj/SHARED_LIBRARIES/libdl_intermediates/LINKED/libdl.so)

/home/lijj/android/android-4.0.1/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0_hisi/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: unrecognized option '--icf=safe'

/home/lijj/android/android-4.0.1/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0_hisi/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: use the --help option for usage information

collect2: ld returned 1 exit status

解决:

修改TARGET_linux-arm.mk中P134行对TARGET_GLOBAL_LDFLAGS的赋值,去掉--icf=safe

16、

In file included from frameworks/base/media/libstagefright/AACWriter.cpp:21:

frameworks/base/include/media/stagefright/AACWriter.h:70: error: ISO C++ forbids declaration of 'DISALLOW_EVIL_CONSTRUCTORS' with no type

make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libstagefright_intermediates/AACWriter.o] 错误 1

解决:

添加包含头文件#include 17、

In file included from frameworks/base/media/libstagefright/SurfaceMediaSource.cpp:19:

frameworks/base/include/media/stagefright/SurfaceMediaSource.h:363: error: ISO C++ forbids declaration of 'DISALLOW_IMPLICIT_CONSTRUCTORS' with no type

frameworks/base/include/media/stagefright/SurfaceMediaSource.h: In member function 'virtual android::status_t android::SurfaceMediaSource::setScalingMode(int)':

frameworks/base/include/media/stagefright/SurfaceMediaSource.h:114: error: no return statement in function returning non-void

make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libstagefright_intermediates/SurfaceMediaSource.o] 错误 1

make: *** 正在等待未完成的任务....

解决:

将DISALLOW_IMPLICIT_CONSTRUCTORS 改为SurfaceMediaSource( );

这个宏的作用好像就是定义构造函数,在frameworks目录下没有找到该宏的定义,且只看到这一个地方用到了这个宏

external目录有这个宏的定义

18、

In file included from frameworks/base/media/libstagefright/SurfaceMediaSource.cpp:19:

frameworks/base/include/media/stagefright/SurfaceMediaSource.h: In member function 'virtual android::status_t android::SurfaceMediaSource::setScalingMode(int)':

frameworks/base/include/media/stagefright/SurfaceMediaSource.h:114: error: no return statement in function returning non-void

make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libstagefright_intermediates/SurfaceMediaSource.o] 错误 1

make: *** 正在等待未完成的任务....

解决:

setScalingMode函数添加return OK;

19、

external/ipsec-tools/src/racoon/isakmp.c: In function 'isakmp_handler':

external/ipsec-tools/src/racoon/isakmp.c:214: error: field 'ip' has incomplete type

external/ipsec-tools/src/racoon/isakmp.c:230: warning: pointer targets in passing argument 6 of 'recvfromto' differ in signedness

external/ipsec-tools/src/racoon/sockmisc.h:68: note: expected 'socklen_t *' but argument is of type 'unsigned int *'

解决:

参照2.3里面在isakmp.c前面 添加

#ifdef ANDROID_CHANGES

#define __linux

#endif

这个文件2.3和4.0里面有了蛮多变化,不知道这么改会不会有问题

20、

target arm C: libwebrtc_aecm <= external/webrtc/src/modules/audio_processing/aecm/main/source/aecm_core.c

/tmp/ccyInhhH.s: Assembler messages:

/tmp/ccyInhhH.s:3864: Error: co-processor offset out of range

/tmp/ccyInhhH.s:3865: Error: co-processor offset out of range

解决:

对比2.3,修改TARGET_linux-arm.mk相关编译选项

21、

/home/lijj/android/android-4.0.1/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0_hisi/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: unrecognized option '--icf=none'

/home/lijj/android/android-4.0.1/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0_hisi/bin/../lib/gcc/arm-eabi/4.4.0/../../../../arm-eabi/bin/ld: use the --help option for usage information

collect2: ld returned 1 exit status

make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libdynamic_annotations_intermediates/LINKED/libdynamic_annotations.so] 错误 1

make: *** 正在等待未完成的任务....

解决:

以下几个文件去掉--icf=none

/external/valgrind/dynamic_annotations/Android.mk:27:  LOCAL_LDFLAGS += -Wl,--icf=none

./external/valgrind/tsan/Android.mk:49:  preload_ldflags += -Wl,--icf=none

./external/valgrind/main/Android.mk:52:  preload_ldflags += -Wl,--icf=none

22、

frameworks/base/native/include/android/native_window.h:36: error: redefinition of typedef 'ANativeWindow'

system/core/include/system/window.h:429: note: previous declaration of 'ANativeWindow' was here

make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libEGL_VIVANTE_intermediates/driver/openGL/egl/os/gc_egl_linux.o] 错误 1

make: *** 正在等待未完成的任务....

解决:

android_natives.h中包含了两个头文件

#include #include

这两个头文件中都定义了ANativeWindow 去掉了下面个头文件

阅读(2315) | 评论(0) | 转发(1) |

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/419551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle之数据处理

--创建表 create table emp3 as select employee_id,last_name,hire_date,salary from employees--查询表 select * from emp3--插入表 insert into emp3 values(1001,AA,sysdate,10000) 运行结果 插入对应三项 --空值用null代替 --复制表 insert into emp3(last_name,employe…

HDU 4635(强连通分量分解

题目:给出一个有向图,要求添加最多的边数,使得图仍然不强连通. 思路:首先这个图在添加边之后肯定变成了两个强连通分量,现在就看怎么分.然后我们可以注意到,原图进行强连通分量分解之后必然存在一些分量的出度或入度为0,最小的分量肯定在这些分量之中.那么找出这个分量就可以得…

Android方法的概括,android中的Filter接口简介

一、结构public abstract class Filter extends Objectjava.lang.Objectandroid.widget.Filter二、概述过滤器通过过滤模式来约束数据&#xff0c;通常由实现了Filterable接口的子类来生成。 过滤操作是通过调用filter(CharSequence)或者filter(CharSequence, android.widget.F…

oracle之数据处理之课后练习

55. 更改 108 员工的信息: 使其工资变为所在部门中的最高工资, job 变为公司中平均工资最低的 job1). 搭建骨架update employees set salary (), job_id () where employee_id 108;2). 所在部门中的最高工资 select max(salary)from employeeswhere department_id (select …

nyoj--79--导弹拦截(动态规划)

拦截导弹 时间限制&#xff1a;3000 ms | 内存限制&#xff1a;65535 KB 难度&#xff1a;3描述 某国为了防御敌国的导弹袭击&#xff0c;发展中一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷&#xff1a;虽然它的第一发炮弹能够到达任意的高度&#xff0c;但是以后每一…

android webview 长按菜单拦截,javascript-在Android上长按时禁用上下文菜单

javascript-在Android上长按时禁用上下文菜单我想禁用长按(触摸并按住)Web应用程序中的图像后出现的上下文菜单。 我见过关于如何做到这一点的不同想法&#xff0c;但似乎没有一个对我有用。有没有办法通过HTML / CSS / Javascript在Android上执行此操作&#xff1f;12个解决方…

oracle之数据处理之约束1

--创建表 create table emp4( id number(10) constraint emp2_id_nn not null, name varchar2(20) not null, salaty number(10,2) )--查询表 select *from emp4--插入 insert into emp4 values(1001,geyao,2000) 运行结果 --创建表 create table emp5( --列级约束 id numbe…

java中注解的使用与实例(一)

注解目前非常的流行&#xff0c;很多主流框架都支持注解&#xff0c;而且自己编写代码的时候也会尽量的去用注解&#xff0c;一时方便&#xff0c;而是代码更加简洁。 注解的语法比较简单&#xff0c;除了符号的使用之外&#xff0c;它基本与Java固有语法一致。Java SE5内置了三…

android sqlite 操作类封装,[Android] Sqlite 数据库操做 工具封装类

sqlite 数据库封装类htmlDatabaseUtil.java(封装的类)javapackagecom.jack.androidbase.tools;importandroid.content.ContentValues;importandroid.content.Context;importandroid.database.Cursor;importandroid.database.SQLException;importandroid.database.sqlite.SQLite…

oracle之数据处理之约束2

--修改约束 alter table emp5 modify (salary number(10,2) not null)运行结果 --删除约束 alter table emp5 drop constraint emp5_name_nn 运行结果

css实现一个写信的格式

一、目标 目标实现如下效果&#xff1a; 二、完成 1、分析 这个效果看起来很简单&#xff0c;实际上可能并不那么容易实现。 首先是全部东西都居中显示&#xff0c;除了“亲爱的starof”这个称呼的地方。这也是难点&#xff0c;也是本文要重点说的地方。 开始我尝试将“ 亲爱的…

android 6.0版本名字,棉花糖Marshmallow 是Android 6.0的名字

Android 6.0 五月下旬在 I/O 大会上亮相&#xff0c;将于今年秋天与用户见面。但是依照惯例&#xff0c;谷歌并没有宣布新 Android 的代号全称&#xff0c;而 Android M 中 M 所代表的甜品&#xff1a;Marshmallow(棉花糖)。并不是MM巧克力豆&#xff0c;巧克力豆的粉丝&#x…

Java达到MySQL数据库备份(两)

博客《Java实现MySQL数据库备份&#xff08;一&#xff09;》使用I/O流的方式实现了MySQL数据库的备份&#xff0c;这样的方法比較繁杂。以下介绍还有一种备份MySQL数据库的方法&#xff1a; import java.io.File; import java.io.IOException;/*** MySQL数据库备份* * author …

找不到android的sdk,CircleCI – 找不到Android Studio项目的SDK位置

尝试在CircleCI上构建项目时,在gradle构建期间发生以下错误.这个问题的原因是什么&#xff1f;我正在运行CircleCI 2.0.FAILURE: Build failed with an exception.What went wrong: A problem occurred configuring project ‘:app’.SDK location not found. Define location …

选项卡,下拉菜单操做时的页面数据更新,highcharts,d3 结合。

1.选项卡&#xff1a;给要选中的元素添加css样式&#xff0c;加active&#xff0c;单击时先移除active&#xff0c;再把当前单击元素添加active。 单击时页面切换&#xff0c;按钮和页面要有关联&#xff0c;通过获取$(this).text();年龄&#xff0c;教育&#xff0c;职业&…

oracle之数据处理之约束练习

57. 定义非空约束1). 非空约束只能定义在列级.2). 不指定约束名create table emp2 (name varchar2(30) not null, age number(3));3). 指定约束名 create table emp3(name varchar2(30) constraint name_not_null not null, age number(3));58. 唯一约束1). 列级定义①. 不指定…

小米9android系统怎么关闭,小米MIUI系统怎么禁用虚拟键 小米MIUI系统禁用虚拟键方法...

想新很多米粉对对miui系统不会陌生。这个系统还很是不错。但是刚刚入手小米手机的米粉可能就不太熟悉了。那么&#xff0c;虚拟键要怎么去禁用呢&#xff1f;下面就一起来看看小米MIUI系统虚拟键禁用方法。大家用安卓手机的时候是否曾遇到过以下折磨人的场景&#xff1a;小米MI…

C#性能优化:延迟初始化LazyT

1. 概述 我们创建某一个对象需要很大的消耗&#xff0c;而这个对象在运行过程中又不一定用到&#xff0c;为了避免每次运行都创建该对象&#xff0c;这时候延迟初始化&#xff08;也叫延迟实例化&#xff09;就出场了。 延迟初始化出现于.NET 4.0&#xff0c;主要用于提高性能&…

android手机值不值得买,安卓直屏Redmi K40手机值得买吗?

描述还记得我们上一次谈论直屏与曲面屏的关系吗&#xff1f;小Z从后台留言中发现了很多人确实对如今清一色的旗舰曲面屏感到不满&#xff0c;用着远没有几年前的直屏来得顺手。但在如今的手机市场中&#xff0c;想要找到一款屏幕素质不错&#xff0c;硬件配置足够旗舰&#xff…