Ubuntu11.10でandroidソース4.0をコンパイルする.3 for samsung 4412 TC 4 boardエラーおよび解決


Androidソース:SEC_Android_Exynos4x12_TC4_ICS.dvt.01.ic.tar
ここでは、コンパイル環境が構築されています.コンパイル時に発生する問題について説明します.
1.
error:
============================================ Checking build tools versions... ************************************************************ You are attempting to build with the incorrect version of java.   Your version is: java version "1.6.0_23". The correct version is: Java SE 1.6.   Please follow the machine setup instructions at     http://source.android.com/source/download.html ************************************************************
解決方法1:
主にjavaバージョンが間違っているためです.
sudo update-alternatives--config javaコマンドの実行
Javaのバージョンを構成して、次のヒントを出します.
Javaを置き換えるには、/usr/bin/javaを提供する3つの候補があります.経路優先度の状態を選択-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------0-sun/jre/bin/java 53手動モード2/usr/lib/jvm/java-6-openjdk/jre/bin/java 1061手動モード3/usr/lib/jvm/java-6-sun/jre/bin/java 63手動モード現在の値を維持するには[*]を押すか、選択した番号を入力します:3
ここで3を選べばいいです.
jarのバージョンの構成を続行します.sudo update-alternatives--config jarコマンドの実行
ヒント:
リンクグループjarには、/usr/lib/jvm/java-6-sun/bin/jarを構成する必要がないオプションが1つしかありません.
jarのバージョンがjavaのバージョンと一致していることを示し、コンパイルを続行すればいいです.
 
 
 
解決策2:(コンパイル結果に影響を及ぼすかどうか)
ubuntuにはopenjdkのようなデフォルトのjdkがある可能性がありますので、デフォルトで私たちがインストールしたjdkを使用するように、次の作業を行います.実行
build/core/main.mk中117行:ifneq($(shell java-version 2>&1|grep-i openjdk),)
変更:ifeq($(shell java-version 2>&1|grep-i openjdk),)
 
 
 
2.
error:
<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による.
解決方法:
ソースディレクトリを変更/build/core/combo/HOST_linux-x86.mkファイル:
次の文を
HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
HOST_に変更GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0
 
 
 
3.
error:
 reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]
解決方法:external/oprofile/libpp/format_output.h mutable counts_t & counts; 変更:counts_t & counts;
 
 
4.
error:
.external/mesa3d/src/glsl/linker.cpp:623:33:警告:'virtual ir_visitor_status remap_variables(ir_instruction*, gl_shader*,
hash_table*)::remap_Visitor::visit(ir_dereference_variable*)'に隠されている[-WOverloaded-virtual]external/mesa 3 d/src/glsl/linker.cpp:関数‘void assign_varying_locations(gl_shader_program*,gl_shader*,gl_shader*)’中:external/mesa 3 d/src/glsl/linker.cpp:1394:49:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1394:50:エラー:『varyings』この役割ドメインではexternal/mesa 3 d/src/glsl/linkerは宣言されていません.cpp:1394:58:エラー:『offsetof』この役割ドメインではexternal/mesa 3 d/src/glsl/linkerは宣言されていません.cpp:1395:48:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1412:47:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1412:48:エラー:"position"この役割ドメインではexternal/mesa 3 d/src/glsl/linkerは宣言されていません.cpp:1414:47:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1414:48:エラー:"pointSize"この役割ドメインではexternal/mesa 3 d/src/glsl/linkerは宣言されていません.cpp:1424:47:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1424:48:エラー:「position」この役割ドメインではexternal/mesa 3 d/src/glsl/linkerは宣言されていません.cpp:1428:47:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1428:48:エラー:「frontFacingPointCoord」この役割ドメインではexternal/mesa 3 d/src/glsl/linkerが宣言されていません.cpp:1431:47:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1431:48:エラー:「frontFacingPointCoord」この役割ドメインではexternal/mesa 3 d/src/glsl/linkerが宣言されていません.cpp:関数‘void link_shaders(const gl_context*,gl_shader_program*)の中:external/mesa 3 d/src/glsl/linker.cpp:1734:49:エラー:expected primary-expression before','token external/mesa 3 d/src/glsl/linker.cpp:1734:50:エラー:'fragColor'この役割ドメインではexternal/mesa 3 d/src/glsl/linkerは宣言されていません.cpp:1734:59:エラー:'offsetof'この役割ドメインでmakeが宣言されていません:***[out/host/linux-x 86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o]エラー1
解決方法:vim external/mesa 3 d/src/glsl/linker.cpp追加:#include
 
 
5.
error:
.external/gtest/src/../include/gtest/internal/gtest-param-util.h:122:11:エラー:'ptrdiff_t’はタイプ名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:
解決方法:$vim external/gtest/src/./include/gtest/internal/gtest-param-util.h  #include
 
 
 
6.
error:
.host Executable: test-librsloader (out/host/linux-x86/obj/EXECUTABLES/test-librsloader_intermediates/test-librsloader)  host StaticLib: libui (out/host/linux-x86/obj/STATIC_LIBRARIES/libui_intermediates/libui.a)  out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Signals.o): In function `PrintStackTrace':  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Unix/Signals.inc:219: undefined reference to `dladdr'  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Unix/Signals.inc:231: undefined reference to `dladdr'  out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Threading.o): In function `llvm::llvm_execute_on_thread(void (*)
(void*), void*, unsigned int)':  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:96: undefined reference to `pthread_create'  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:91: undefined reference to `pthread_attr_setstacksize'  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Threading.cpp:100: undefined reference to `pthread_join'  out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `MutexImpl':  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:69: undefined reference to `pthread_mutexattr_init'  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:75: undefined reference to `pthread_mutexattr_settype'  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:80: undefined reference to `pthread_mutexattr_setpshared'  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:89: undefined reference to `pthread_mutexattr_destroy'  out/host/linux-x86/obj/STATIC_LIBRARIES/libLLVMSupport_intermediates/libLLVMSupport.a(Mutex.o): In function `llvm::sys::MutexImpl::tryacquire()':  /home/shaocq/ics4.0.1/external/llvm/lib/Support/Mutex.cpp:143: undefined reference to `pthread_mutex_trylock'collect 2:ld戻り1 make:***[out/host/linux-x 86/obj/EXECUTTABLES/test-librsloader_intermediates/test-librsloader]エラー1 make:***未完了のタスクを待っています.....
解決方法:$vim external/llvm/llvm-host-build.mk行を1行追加(先頭または末尾でなくてもよい):LOCAL_LDLIBS := -lpthread -ldl
 
 
7.
error:
frameworks/compile/slang/slang_rs_export_foreach.cpp:247:23: error: variable ‘ParamName’ set but not used [-Werror=unused-but-set-variable] cc1plus: all warnings being treated as errors
解決方法:$vi frameworks/compile/slang/Android.mk将:local_cflags_for_slang:=-Wno-sign-promo-Wall-Wno-unused-parameter-Werror変更:local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter
 
 
 
 
まだ発生していないエラーがありますが、他の人は次のように表示されています.
frameworks/base/libs/utils/RefBase.cpp:483:67: error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]
 make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1

解決方法:vim frameworks/base/libs/utils/Android.mk次の文を変更
LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1$(TOOL_CFLAGS)がLOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
 
 
コンパイルに成功した後、TC 4_ICS/out/target/product/smdk 4 x 12/には3つのファイルramdiskがある.img, system.img, userdata.img
 
 
 
 
最後に、パッケージ時に発生したエラー
make otapackageで発生したエラー:
Could not create the Java virtual machine.
   ERROR: signapk.jar failed: return code 1
仮想マシンのスペースが足りないため、build/tools/releasetools/commonを変更する必要がある可能性があります.pyファイルcmd=["java","-Xmx 2048 m","-jar",os.path.join(OPTIONS.search_path,"framework","signapk.jar")]のうち-Xmx 2048 mを-Xmx 1024 mに変更