Android: Ubuntu 12.04 LTS下Build Android Source Tree 4.0.1遇到的錯誤

原先在英文環境下的記錄沒有了,在中文環境下重新Build了一次:


1) “_FORTIFY_SOURCE”重定義


<命令行>:0:0: 警告: “_FORTIFY_SOURCE”重定義 [默認啓用]
<built-in>:0:0: 附註: 這是先前定義的位置

解決方法:


build/core/combo/HOST_linux-x86.mk: 56行

HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
更改爲:
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

2)錯誤: variable ‘ParamName’ set but not used

frameworks/compile/slang/slang_rs_export_foreach.cpp: 在靜態成員函數‘static slang::RSExportForEach* slang::RSExportForEach::Create(slang::RSContext*, const clang::FunctionDecl*)’中:
frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: 錯誤: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable]
cc1plus: all warnings being treated as errors

解決方法:

將frameworks/compile/slang/slang_rs_export_foreach.cpp: 247行

      llvm::StringRef ParamName = PVD->getName();

註解掉。


3)錯誤: reference ‘counts’ cannot be declared ‘mutable’

In file included from external/oprofile/libpp/arrange_profiles.cpp:24:0:
external/oprofile/libpp/format_output.h:94:22: 錯誤: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o] 錯誤 1

解決辦法: 

將external/oprofile/libpp/format_output.h: 94行

mutable counts_t & counts;
改爲:
counts_t & counts;

4)undefined reference to `pthread_mutex_trylock' collect2

out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `llvm::sys::MutexImpl::tryacquire()':
/home/rzzhang/workspace/external/llvm/lib/Support/Mutex.cpp:143: undefined reference to `pthread_mutex_trylock'
collect2: ld 返回 1
make: *** [out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader] 錯誤 1

解決方法:

vim external/llvm/llvm-host-build.mk: 45行

LOCAL_IS_HOST_MODULE := true

後添加:

LOCAL_LDLIBS := -lpthread -ldl


5) ‘ptrdiff_t’不是一個類型名

host C++: libgtest_host <= external/gtest/src/gtest-all.cc
In file included from external/gtest/src/../include/gtest/gtest-param-test.h:157:0,
                 from external/gtest/src/../include/gtest/gtest.h:69,
                 from external/gtest/src/../src/gtest.cc:34,
                 from external/gtest/src/gtest-all.cc:36:
external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11: 錯誤: ‘ptrdiff_t’不是一個類型名
In file included from external/gtest/src/gtest-all.cc:38:0:
external/gtest/src/../src/gtest-filepath.cc: 在成員函數‘bool testing::internal::FilePath::FileOrDirectoryExists() const’中:
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_dev’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::__pad1’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::__st_ino’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_mode’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_nlink’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_uid’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_gid’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_rdev’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::__pad2’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_size’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_blksize’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_blocks’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_atim’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_mtim’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_ctim’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:180:28: 警告: 成員‘stat::st_ino’缺少初始值設定 [-Wmissing-field-initializers]
In file included from external/gtest/src/gtest-all.cc:38:0:
external/gtest/src/../src/gtest-filepath.cc: 在成員函數‘bool testing::internal::FilePath::DirectoryExists() const’中:
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_dev’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::__pad1’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::__st_ino’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_mode’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_nlink’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_uid’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_gid’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_rdev’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::__pad2’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_size’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_blksize’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_blocks’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_atim’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_mtim’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_ctim’缺少初始值設定 [-Wmissing-field-initializers]
external/gtest/src/../src/gtest-filepath.cc:208:28: 警告: 成員‘stat::st_ino’缺少初始值設定 [-Wmissing-field-initializers]
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libgtest_host_intermediates/gtest-all.o] 錯誤 1


解決方法:

在external/gtest/include/gtest/internal/gtest-param-util.h開頭


添加:

#include <cstddef>


6)libGLES_CM_translator

host StaticLib: libGLcommon (out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon
_intermediates/libGLcommon.a)
host SharedLib: libGLES_CM_translator (out/host/linux-x86/obj/lib/libGLES_CM_tra
nslator.so)
/usr/bin/ld: cannot find -lGL
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] Error 1

解決方法:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so

說明:第六項在本次編譯中沒有遇到,但是在英文環境下曾經遇到過。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章