UUTON

悠悠途恩

user tag detected on new module错误

环境:ubuntu 10.04 X86_64

编译android

#make -j4时和make c文件为so文件时,有如下报错信息:

……

build/core/base_rules.mk:102: *** user tag detected on new module - user tags are only supported on legacy modules. Stop.


查询了下官方文档才发现如下信息:

user: 指该模块只在user版本下才编译

eng: 指该模块只在eng版本下才编译

tests: 指该模块只在tests版本下才编译

optional:指该模块在所有版本下都编译

原来是我这个系统模块放在了framework下,需要制定在那种情况下才编译,由于未指定LOCAL_MODULE_TAGS ,因而在用mmm 制定去make 时会报错。

解决方法: 在Android.mk 下添加下面代码即可解决。

LOCAL_MODULE_TAGS := optional

结果还是不行,最终解决办法如下:

1、把android系统代码中的每一个Android.mk的 “LOCAL_MODULE_TAGS := user”替换为 “LOCAL_MODULE_TAGS := optional”,可以在系统根目录下输入下面的命令一起替换:

"find ./ -exec grep -l "LOCAL_MODULE_TAGS := user" {} \; -exec sed -i.bak  s/"LOCAL_MODULE_TAGS := user"/"LOCAL_MODULE_TAGS := optional"/g {} \;"

2、把gcc 4.4降级到gcc 4.3,因为 4.4 会报错:

CODE:

sudo apt-get install gcc-4.3

sudo apt-get install g++-4.3

rm /usr/bin/gcc

rm /usr/bin/g++

ln -s /usr/bin/gcc-4.3 /usr/bin/gcc

ln -s /usr/bin/g++-4.3 /usr/bin/g++


评论

© UUTON | Powered by LOFTER