错误1:

注意:external/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java 使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
注意:external/protobuf/java/src/main/java/com/google/protobuf/micro/CodedInputStreamMicro.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
Generated: (out/target/product/generic/android-info.txt)
host C: acp <= build/tools/acp/acp.c
host C++: libhost <= build/libs/host/pseudolocalize.cpp
host C: libhost <= build/libs/host/CopyFile.c
<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用]
<built-in>:0:0: 附注: 这是先前定义的位置
<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用]
<built-in>:0:0: 附注: 这是先前定义的位置
In file included from build/libs/host/CopyFile.c:11:0:
build/libs/host/include/host/CopyFile.h:5:22: 致命错误: sys/stat.h:没有那个文件或目录
编译中断。
In file included from /usr/include/stdlib.h:25:0,
                 from build/tools/acp/acp.c:11:
/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o] 错误 1
make: *** 正在等待未完成的任务....
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用]
<built-in>:0:0: 附注: 这是先前定义的位置
In file included from /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/os_defines.h:40:0,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/c++config.h:392,
                 from /usr/include/c++/4.6/string:40,
                 from build/libs/host/include/host/pseudolocalize.h:4,
                 from build/libs/host/pseudolocalize.cpp:1:
/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。

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

注意:某些输入文件使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
注意:某些输入文件使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

解决方法:sudo apt-get install libc6-dev-i386

http://www.blogjava.net/ZircoN/archive/2011/11/13/363452.html

错误2:

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]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] 错误 1
make: *** 正在等待未完成的任务....
frameworks/base/libs/utils/ResourceTypes.cpp: 在成员函数‘void android::ResTable::print(bool) const’中:
frameworks/base/libs/utils/ResourceTypes.cpp:4369:84: 警告: 将一个整数转换为大小不同的指针 [-Wint-to-pointer-cast]

frameworks/base/libs/utils/ResourceTypes.cpp:4375:43: 警告: 将一个整数转换为大小不同的指针 [-Wint-to-pointer-cast]

参考网上的解决方法:

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

将下面一行

LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)

改成

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

http://www.blogjava.net/ZircoN/archive/2011/11/13/363452.html

问题并没有解决,反而又出现了新的错误:

host C++: libutils <= frameworks/base/libs/utils/Asset.cpp
g++: –fpermissive:没有那个文件或目录
注意:某些输入文件使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
注意:某些输入文件使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/Asset.o] 错误 1
make: *** 正在删除文件“out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/Asset.o”

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

这个错误主要是gcc版本过高引起的:最终解决办法是:

(11.10的gcc版本过高

http://hi.baidu.com/designhouse/blog/item/fec5cdbf8d6a231618d81fc1.html)

ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3。

通过gcc -v命令可以发现gcc库在/usr/lib/gcc/i686-linux-gnu目录下,该目录下有当前系统支持的各种版本gcc库 。在安装gcc 4.4前该目录下是没有4.4目录的,安装gcc 4.4后该目录下就会多出4.4这个目录,且该4.4目录下有各种相应库文件。

ubuntu 32bit系统下安装gcc 4.4的最好方法是仅用以下两条命令,不需要其它命令,否则编译时可能会出错。

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4

 
装完后在/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

错误3:

g++: g++: selected multilib '32' not installed
selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1
make: *** 正在等待未完成的任务....
make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1

解决方法:

输入:sudo apt-get install gcc-multilib

sudo apt-get install g++-multilib后出现新问题:

g++: g++: host SharedLib: libfst (out/host/linux-x86/obj/lib/libfst.so)
g++: selected multilib '32' not installedselected multilib '32' not installed

selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1
make: *** 正在等待未完成的任务....
make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1

make: *** [out/host/linux-x86/obj/lib/libfst.so] 错误 1

解决方法

sudo apt-get install libc6-dev ia32-libs lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils

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

错误4:

Could not load 'clearsilver-jni'
java.library.path = out/host/linux-x86/lib
Could not load 'clearsilver-jni'
java.library.path = out/host/linux-x86/lib
make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45
make: *** 正在等待未完成的任务....
make: *** [out/target/common/docs/doc-comment-check-timestamp] 错误 45

解决方法:

这是由于clearsilver 在编译时如果检测到使用Java JDK 6,就使用64位编译。要避开此错误,需要修改下面四个文件:

* external/clearsilver/cgi/Android.mk
* external/clearsilver/java-jni/Android.mk
* external/clearsilver/util/Android.mk
* external/clearsilver/cs/Android.mk

把这四个Makefile中的下列语句注掉即可:

# This forces a 64-bit build for Java6
# Comment by Easwy
# LOCAL_CFLAGS += -m64
# LOCAL_LDFLAGS += -m64

然后在external/clearsilver目录中执行一下make clean,然后回到项目根目录,继续make即可。

当编译完成时,生成的image文件放在out/target/product/generic目录中。

gedit /root/.bashrc
export PATH=/root/android/mydroid/out/host/linux-x86/bin:$PATH
export ANDROID_PRODUCT_OUT=/root/android/mydroid/out/target/product/generic
export ANDROID_SWT=/root/android/mydroid/out/host/linux-x86/framework

在源码目录下的out/target/product/generic/目录下运行
emulator -image system.img -data userdata.img -ramdisk ramdisk.img 命令

错误5:

emulator

NAND: could not write file system.img, File exists

编译android4.0遇到gcc和g++编译器的问题解决方法

2013-05-24 09:43 572人阅读 评论(0) 收藏 举报

很多人在编译android4.0中可能遇到一些列问题,比如说其中一个就是GCC版本过高。

/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录

编译中断。
make: *** [out/host/linux-x86/obj/EXECUTABLES/mkbootfs_intermediates/mkbootfs.o] 错误 1
make: *** 正在等待未完成的任务….
In file included from /usr/include/stdlib.h:25:0,
from build/tools/acp/acp.c:11:
/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。

或者是这个现象

<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
 <built-in>:0:0: note: this is the location of the previous definition
 cc1plus: all warnings being treated as errors
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1

上述两个问题都是由于:

ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3。

废话不多说了,直接写解决方法吧;

ubuntu 系统下安装gcc 4.4的方法是仅用以下两条命令。

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4

装完后在/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++*

lrwxrwxrwx 1 root root      7 2011-08-14 15:17 g++ -> g++-4.6

-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4

-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6

需要将g++链接改为g++-4.4:

/usr/bin$ sudo mv g++ g++.bak

/usr/bin$sudo ln -s g++-4.4 g++

再查看gcc和g++版本号:
gcc -v
g++ -v
 
以上方法还是不行。
 
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directoryIn file included from /home/hudan/android/source/android4.1.1/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/../sysroot/usr/include/sys/types.h:27:0,
                 from frameworks/native/include/utils/Errors.h:20,
                 from frameworks/native/include/utils/String8.h:20,
                 from cts/suite/audio_quality/lib/include/Settings.h:21,
                 from cts/suite/audio_quality/lib/src/Settings.cpp:17:
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directoryIn file included from /usr/include/stdlib.h:25:0,
                 from cts/suite/audio_quality/lib/src/Adb.cpp:16:
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory
 
compilation terminated.
compilation terminated.
 
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libcts_audio_quality_intermediates/src/SimpleScriptExec.o] Error 1
make: *** Waiting for unfinished jobs....
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libcts_audio_quality_intermediates/src/Adb.o] Error 1
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libcts_audio_quality_intermediates/src/Settings.o] Error 1
In file included from /usr/include/semaphore.h:22:0,
                 from cts/suite/audio_quality/lib/include/Semaphore.h:21,
                 from cts/suite/audio_quality/lib/src/Semaphore.cpp:17:
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libcts_audio_quality_intermediates/src/Semaphore.o] Error 
解决方法:sudo apt-get install gcc-multilib 
 
以上方法还有问题!
 
g++: g++: selected multilib '32' not installed
sudo apt-get install g++-multilib
sudo apt-get install libc6-dev ia32-libs lib32ncurses5-dev x11proto-core-dev libx11-dev lib32readline-gplv2-dev lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils
sudo apt-get install g++-4.4-multilib

第一个错误是:

很多人在编译android4.0中可能遇到一些列问题,比如说其中一个就是GCC版本过高。

————————————————————————————————–

例如:

/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录

编译中断。
make: *** [out/host/linux-x86/obj/EXECUTABLES/mkbootfs_intermediates/mkbootfs.o] 错误 1
make: *** 正在等待未完成的任务….
In file included from /usr/include/stdlib.h:25:0,
from build/tools/acp/acp.c:11:
/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。

ubuntu 11.10的gcc版本是4.6.1,版本太高,编译android时出错,要把gcc版本改为4.4.3。

废话不多说了,直接写解决方法吧;

ubuntu 系统下安装gcc 4.4的方法是仅用以下两条命令。

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4

装完后在/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++*

lrwxrwxrwx 1 root root      7 2011-08-14 15:17 g++ -> g++-4.6

-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4

-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6

需要将g++链接改为g++-4.4:

/usr/bin$ sudo mv g++ g++.bak

/usr/bin$sudo ln -s g++-4.4 g++

再查看gcc和g++版本号:
gcc -v
g++ -v

错误1:

注意:external/protobuf/java/src/main/java/com/google/protobuf/GeneratedMessageLite.java 使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
注意:external/protobuf/java/src/main/java/com/google/protobuf/micro/CodedInputStreamMicro.java 使用了未经检查或不安全的操作。
注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。
Generated: (out/target/product/generic/android-info.txt)
host C: acp <= build/tools/acp/acp.c
host C++: libhost <= build/libs/host/pseudolocalize.cpp
host C: libhost <= build/libs/host/CopyFile.c
<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用]
<built-in>:0:0: 附注: 这是先前定义的位置
<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用]
<built-in>:0:0: 附注: 这是先前定义的位置
In file included from build/libs/host/CopyFile.c:11:0:
build/libs/host/include/host/CopyFile.h:5:22: 致命错误: sys/stat.h:没有那个文件或目录
编译中断。
In file included from /usr/include/stdlib.h:25:0,
                 from build/tools/acp/acp.c:11:
/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/CopyFile.o] 错误 1
make: *** 正在等待未完成的任务....
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] 错误 1
<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定义 [默认启用]
<built-in>:0:0: 附注: 这是先前定义的位置
In file included from /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/os_defines.h:40:0,
                 from /usr/include/c++/4.6/x86_64-linux-gnu/32/bits/c++config.h:392,
                 from /usr/include/c++/4.6/string:40,
                 from build/libs/host/include/host/pseudolocalize.h:4,
                 from build/libs/host/pseudolocalize.cpp:1:
/usr/include/features.h:323:26: 致命错误: bits/predefs.h:没有那个文件或目录
编译中断。

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

注意:某些输入文件使用或覆盖了已过时的 API。
注意:要了解详细信息,请使用 -Xlint:deprecation 重新编译。
注意:某些输入文件使用了未经检查或不安全的操作。

注意:要了解详细信息,请使用 -Xlint:unchecked 重新编译。

解决方法:sudo apt-get install libc6-dev-i386

http://www.blogjava.net/ZircoN/archive/2011/11/13/363452.html

Android文件系统编译出错记录的更多相关文章

  1. Cocos2dx Android环境编译出错:jni/Android.mk: Cannot find module with tag 'scripting/lua-bindings' in import path

    解决方案为: 在项目proj.android\jni\Android.mk(D:\my_lua_test2\MyluaTest\frameworks\runtime-src\proj.android\ ...

  2. QGroundControl编译出错记录

    运行时出现错误: /home/myfly2/Downloads/qgroundcontrol/QGroundControl: error : cannot open shared object fil ...

  3. Android Studio2.1.2 Java8环境下引用Java Library编译出错

    转载请注明出处:http://www.cnblogs.com/LT5505/p/5685242.html 问题:在Android Studio2.1.2+Java8的环境下,引用Java Librar ...

  4. 【Android 系统开发】 编译 Android文件系统 u-boot 内核 并烧写到 OK-6410A 开发板上

    博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 A ...

  5. Android源码编译全过程记录(基于最新安卓5.1.0)【转】

    本文转载自:http://blog.csdn.net/drg1612/article/details/44802533 我的编译条件: 1 Ubuntu Kylin 14.04 长期支持版 下载地址 ...

  6. Android文件系统的结构

    Android 4.2.2 版本的文件系统 内核版本为 3.0.31 版本号为JDQ39 factory//估计是存放网络通信协议的登录密钥的|-- bluetooth|-- hdcp.keys|-- ...

  7. Mac下设置Android源代码编译环境

    在Mac下编译Android最麻烦的就是设置Android的编译环境了,做完这一步基本上剩下的就是近乎傻瓜式的操作了.说起来也简单就三步,设置大小写敏感的文件系统.安装编译工具.设置文件系统同时能打开 ...

  8. 【转】vlc android 代码编译

    转自:http://blog.csdn.net/asircao/article/details/7734201 系统:ubuntu12.04代码:git://git.videolan.org/vlc- ...

  9. 工欲善其事,必先利其器 软件工具开发关键词 protractor自动化测试工具 RegexBuddy正则 CodeSmith,LightSwitch:代码生成 CheatEngine:玩游戏修改内存值必备神器 ApkIDE:Android反编译工具 Reflector:反编译dll动态链接库

    工欲善其事,必先利其器 本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 原文地址:http ...

随机推荐

  1. OSPF建立邻居、邻接关系 学习笔记

    Ospf中路由器之间存在两种连接关系:邻居关系和邻接关系.本博文将详细介绍这2种关系建立及工作原理. 如果两台路由器之间共享一条公共数据链路(两台路由器中间没有其它路由器,或者两台路由器之间存在虚连接 ...

  2. 两个有序单链表合并成一个有序单链表的java实现

    仅作为备注, 便于自己回顾. import java.util.Arrays; public class MergeSort { public static class LinkedNode<V ...

  3. SDRAM 学习笔记(一)

    前面几篇博客已经讲到了关于0V7725的相关驱动问题,那么OV7725驱动成功之后,设定OV7725输出RGB565格式,那么对于640x480x16,那么若是选用FIFO,应该设置为位宽16bit, ...

  4. MYSQL数据库从A表把数据插入B表

    如果2张表的字段一致,并且希望插入全部数据,可以用这种方法: Code: INSERT INTO 目标表 SELECT * FROM 来源表; 比如要将 articles 表插入到 newArticl ...

  5. c算法

    斐波那契 void main() { ]={, }, i; ;i<=;i++) //这里需要注意,for循环虽然<=9, 还有个i++ { a[i] = a[i-] + a[i-]; pr ...

  6. qualcomm sdm450 tinymix mic record

    最近需要使用tinymix配置主MIC和副MIC进行录音,一般副MIC都是拿来降噪用的.记录一下副MIC录音的方法. 没有找到高通的音频通路图,只能通过logcat,查看audio_route,然后找 ...

  7. Spring Boot 启用Gzip压缩

    有两点需要注意 1.需要在application.properties里启用压缩,并设置压缩支持的格式(默认支持text/html等,但不支持application/json) server.comp ...

  8. Spring JDBC调用存储过程

    以下示例将演示spring jdbc如何调用存储过程.将通过调用存储过程来读取Student表中的一个可用记录.将传递一个学生ID并获取学生记录信息. 语法: SimpleJdbcCall jdbcC ...

  9. (转)【多媒体封装格式详解】--- AAC ADTS格式分析

     出自:http://blog.csdn.net/tx3344/article/details/7414543 http://www.it6655.com/2012/08/aac-adts-html ...

  10. Build opencv libraries for android arm, x86 ubuntu

    废话不多说. 准备工作: 1. 下载源代码: http://opencv.org/ 编译平台:ubuntu14.04 opencv 2.4.6.1 本人用这样的办法编译了opecv 2.4.9 的没有 ...