我是靠谱客的博主 儒雅方盒,最近开发中收集的这篇文章主要介绍ubuntu12.04下编译android源代码出现的问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今天准备在Ubuntu下把之前下载好的android2.2的源码编译下,本以为可以顺利完成编译,结果发现编译过程中出现了一些问题,所以就想把它记录下来一是为了方便以后自己查阅,二是为了给和我一样出现这些问题的人一些参考吧!

问题一、在终端进入源码文件夹下使用make编译源码不久后就出现如下错误:

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] 

解决办法:(下面红色行为终端中的指令)

gedit frameworks/base/libs/utils/Android.mk
找到打开的Android.mk中下面这行:
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
改为:
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive

问题二、按照问题一修改后重新make编译出现如下错误:

host C++: libutils <= frameworks/base/libs/utils/Asset.cpp
g++: –fpermissive:no directory or file

原因说是g++和gcc版本太高了,所以要重新安装低版本的gcc(不用卸载当前gcc)

解决办法

(1)安装gcc和g++

sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4

(2)安装完成后进入/usr/bin/修改gcc和g++设置具体操作如下:(红色为终端输入代码可以直接复制)

cd /usr/bin
ls -l gcc*

显示为

lrwxrwxrwx 1 root root 7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
-rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6
发现gcc 链接到gcc-4.6, 需要将它改为链接到gcc-4.4 

修改代码为:

sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
$ls -l g++*
sudo -s
mv g++-4.4 g++
g++ -v

这样在进入源码文件夹下编译一般就不会出错。

如果按照问题二修改后还是报同样的错误,那么很有可能是你解决问题一的时候添加的“-fpermissives"中的”-“错误重新进入Android.mk中把”-“换成不带输入法的”-“(就是不是你直接复制本文的”-“,自己在键盘敲的英文”-“)












最后

以上就是儒雅方盒为你收集整理的ubuntu12.04下编译android源代码出现的问题的全部内容,希望文章能够帮你解决ubuntu12.04下编译android源代码出现的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部