android编译错误

来源:互联网 发布:excel从网页导入数据 编辑:程序博客网 时间:2024/05/16 15:10

使用64位的Ubuntu系统编译android2.3 遇到以下错误:

错误1:

host C++: libutils <= frameworks/base/libs/utils/RefBase.cpp

frameworks/base/libs/utils/RefBase.cpp: In member function ‘void android::RefBase::weakref_type::trackMe(bool, bool)’:

frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1

解决:

gedit frameworks/base/libs/utils/Android.mk

Change the line:

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

To:

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


错误2:

<命令行>:0:0: 错误: “_FORTIFY_SOURCE”重定义 [-Werror]
<built-in>:0:0: 附注: 这是先前定义的位置
cc1plus: all warnings being treated as errors
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 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


编译错误3:
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz/usr/bin/ld: cannot find -lzcollect2: ld returned 1 exit statusmake: *** [out/host/linux-x86/obj/lib/libneo_cgi.so] 错误 1
解决办法:
sudo apt-get install lib64z1-dev
如果出现依赖错误如:
  下列软件包有未满足的依赖关系:
   lib64z1-dev:i386 : 依赖: lib64z1:i386 (= 1:1.2.3.4.dfsg-3ubuntu4) 但是它将不会被安装
   依赖: lib64c-dev:i386
   E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
那么可以安装32位的lib:sudo apt-get install lib32z1-dev

0 0
原创粉丝点击