最近因为需要使用源码编译后的一个工具,所以在fedora16 64位上编译了一下,整体没出现什么大问题,毕竟我安装系统的时候选择的完全安装,所以推荐大家装系统的时候不要吝啬硬盘,这样可以省很多事。
下载源码,直接在源码根目录敲入命令:make。
其中遇到的一些小问题,记录如下:
问题1:
frameworks/base/libs/utils/RefBase.cpp: 在成员函数‘void android::RefBase::weakref_type::trackMe(bool, bool)’中:
frameworks/base/libs/utils/RefBase.cpp:483:67: 错误: 将‘const android::RefBase::weakref_impl’作为‘void android::RefBase::weakref_impl::trackMe(bool, bool)’的‘this’实参时丢弃了类型限定 [-fpermissive]
原因:编译器版本过高。
解决办法:修改 frameworks/base/libs/utils/Android.mk文件中
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) 后面加上编译选项 -fpermissive 即可。
问题2:
host Executable: sqlite3 (out/host/linux-x86/obj/EXECUTABLES/sqlite3_intermediates/sqlite3)
/usr/bin/ld: skipping incompatible /usr/lib64/libreadline.so when searching for -lreadline
/usr/bin/ld: cannot find -lreadline
/usr/bin/ld: skipping incompatible /usr/lib64/libhistory.so when searching for -lhistory
/usr/bin/ld: cannot find -lhistory
原因:库文件不兼容。
解决办法:yum install readline-devel.i686 readline.i686
问题3:
Install: out/target/product/generic/system/lib/libttssynthproxy.so
Generating CSSPropertyNames.h <= CSSPropertyNames.in
sh: gperf: 未找到命令
calling gperf failed: 32512 at ./makeprop.pl line 96.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libwebcore_intermediates/WebCore/css/CSSPropertyNames.h] 错误 25
原因:缺少工具库。
解决办法:yum install gperf
问题4:
Can't locate Switch.pm in @INC (@INC contains: external/webkit/WebCore/bindings/scripts /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at external/webkit/WebCore/dom/make_names.pl line 38.
原因:fedora16的perl已经没有Switch.pm了。
解决办法:yum install perl-Switch
浙公网安备 33010602011771号