打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
android4.0源码编译过程中中各种错误解决
1.<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]
错误打印如下:
host C++: obbtool <= frameworks/base/tools/obbtool/Main.cpp
<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
上网查了查,解决方法如下:
修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:
将以下语句
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
修改为
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
ATTENTION:
There is a SPACE between the -U_FORTIFY_SOURCE and -D_FORTIFY_SOURCE
查看服务器上的设置,这里是没有进行修改的。
没有进行上述修改:参照http://blog.csdn.net/skypine_lee/article/details/7983825进行了gcc编译器的替换。进行编译仍然是有如下错误。
<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
ics compile fail!

2.frameworks/compile/slang/slang_rs_export_foreach.cpp: In static member functio
错误打印如下:
frameworks/compile/slang/slang_rs_export_foreach.cpp: In static member function 'static slang::RSExportForEach* slang::RSExportForEach::Create(slang::RSContext*, const clang::FunctionDecl*)’:
frameworks/compile/slang/slang_rs_export_foreach.cpp:249:23: error: variable 'ParamName’ set but not used [-Werror=unused-but-set-variable]
cc1plus: all warnings being treated as errors
make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach.o] Error 1
ics compile fail!
解决方法如下: 
# vi myandroid/frameworks/compile/slang/Android.mk  
在打开的makefile文件中按照下面更改:
         -----local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
        ++++local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
3.make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] Error 1
错误打印如下:
external/mesa3d/src/glsl/linker.cpp: In function 'void
assign_varying_locations(gl_shader_program*, gl_shader*, gl_shader*)’:
external/mesa3d/src/glsl/linker.cpp:1394:49: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1394:50: error: 'varyings’ was not
declared in this scope
external/mesa3d/src/glsl/linker.cpp:1394:58: error: 'offsetof’ was not
declared in this scope
external/mesa3d/src/glsl/linker.cpp:1395:48: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1412:47: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1412:48: error: 'position’ was not
declared in this scope
external/mesa3d/src/glsl/linker.cpp:1414:47: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1414:48: error: 'pointSize’ was
not declared in this scope
external/mesa3d/src/glsl/linker.cpp:1424:47: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1424:48: error: 'position’ was not
declared in this scope
external/mesa3d/src/glsl/linker.cpp:1428:47: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1428:48: error:
'frontFacingPointCoord’ was not declared in this scope
external/mesa3d/src/glsl/linker.cpp:1431:47: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1431:48: error:
'frontFacingPointCoord’ was not declared in this scope
external/mesa3d/src/glsl/linker.cpp: In function 'void
link_shaders(const gl_context*, gl_shader_program*)’:
external/mesa3d/src/glsl/linker.cpp:1734:49: error: expected primary-
expression before ',’ token
external/mesa3d/src/glsl/linker.cpp:1734:50: error: 'fragColor’ was
not declared in this scope
external/mesa3d/src/glsl/linker.cpp:1734:59: error: 'offsetof’ was not
declared in this scope
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/
libMesa_intermediates/src/glsl/linker.o] Error 1
解决方法如下:
把 "#include <cstddef>" 添加到 linker.cpp 文件头部。
4.错误:make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o]    
解决方法:确认你使用的gcc和g++的4.4版本,而不是更高的版本。 
Ubuntu 12.04 gcc版本 为 4.6,但是我们需要 gcc 4.4,具体步骤如下: 
  sudo apt-get install -y gcc-4.4 g++-4.4 g++-4.4-multilib  
  sudo mv /usr/bin/gcc /usr/bin/gcc-orig  
  sudo mv /usr/bin/g++ /usr/bin/g++-orig  
  sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc  
  sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
5.错误:make: *** [out/target/common/obj/APPS/CtsVerifier_intermediates/classes-full-debug.jar]
解决方法:sudo update-alternatives --config javac,选择jdk1.6.0,而不是openjdk。
注:我编译期间未见此报错
6.错误:make: *** [out/target/common/obj/APPS/android.core.tests.libcore.package.com.no-core-tests-res_intermediates    /  noproguard.classes-with-local.dex] Killed
解决方法:此问题是因为编译android4.0需要4GB的RAM或SWAP空间,而ubuntu默认的1GB的,所以,增加swap空间即可,执行命令如下:
sudo dd if=/dev/zero of=/boot/swapfile bs=1024 count=4194304
sudo mkswap -v1 /boot/swapfile
sudo swapon /boot/swapfile
free
sudo vi /etc/fstab
/boot/swapfile swap swap defaults 1 1
注:我编译期间未见此报错,我的SWAP也只有1GB,未需增加。
7.报错如下:
1)make: *** No rule to make target 'kernel_imx/arch/arm/configs/imx6_android_defconfig' , needed by 'kernel_imx/.config'. Stop.
解决方法:此问题是因为内核源码未下全,执行如下命令即可:
$ cd kernel_imx
$ git checkout imx-android-13.4.1
2)
解决方法:此问题是因为内核源码未下全,执行如下命令即可:
$ cd uboot-imx
$ git checkout imx-android-13.4.1
注:我编译使用的是imx-android-13.4.1的内核,根据所需对应更改即可。
8.报错如下:
build/core/config.mk:347:  *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com. Stop.

我按照文档下载完JDK,参照jb4.3_1.1.0《Android user guide》执行lunch sabresd_6dq-user还是报错,暂时未有更改GCC版本。我现在下载的是android 4.3版本的源码。
解决方法:下载的jdk tool版本不对,这里需要到官网上下载一下jdk-6u45-linux-x64.bin,重新安装一下。链接http://www.oracle.com/technetwor ... javase6-419409.html。
安装jdk1.6步骤
# cd /usr
# sudo mkdir java
# cd java 
# sudo cp <路径>/jdk-6u45-linux-x64.bin ./
# sudo chmod 777 ./jdk-6u45-linux-x64.bin
-----------Begin to install jdk1.6-----开始安装 jdk1.6
# sudo ./jdk-6u45-linux-x64.bin
---------Configuring Environmet Variables--------------配置环境变量
# cd /etc
# sudo cp profile profile-bak
# sudo gedit profile
Adding the following lines at the beginning:
export JAVA_HOME=/usr/java/jdk1.6.0_45
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin

查看 java jdk1.6 是否已经安装成功
# source ./profile
# java –version
注:如再次出现同样的错误,请查看环境是否修改正确。
9.报错如下:
在使能UBIFS后,编译是出现error:
 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Ubuntu 12.04 编译Android 4.0.3 的环境配置
Android编译环境搭建
tiny_4412编译环境搭建ubuntu12.04
EMC2 安装 包
在Windows下使用nmake+Makefile+编译ZThread库(附例子)
Ubuntu 16.04下iTop4412环境搭建+Android4.0.3编译
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服