2012-06-27 178 views
1

朝着建設的Android工作時我按照這些步驟我運行Linux Mint的13 64位。 (我幾乎是linux的新手)。的Android源代碼編譯錯誤

到目前爲止,我遇到了很多問題,我通過使用Google搜索解決了這個問題,完全有可能是因爲我弄錯了一些我不應該擁有的東西。我目前所面臨的,我是不是可以繞開/解決的問題是:

在第三步(建築),發出命令時使-j4我得到以下輸出:

============================================ 
PLATFORM_VERSION_CODENAME=AOSP 
PLATFORM_VERSION=4.0.4.0.4.0.4 
TARGET_PRODUCT=full 
TARGET_BUILD_VARIANT=eng 
TARGET_BUILD_TYPE=release 
TARGET_BUILD_APPS= 
TARGET_ARCH=arm 
TARGET_ARCH_VARIANT=armv7-a 
HOST_ARCH=x86 
HOST_OS=linux 
HOST_OS_EXTRA=Linux-3.2.0-23-generic-x86_64-with-LinuxMint-13-maya 
HOST_BUILD_TYPE=release 
BUILD_ID=OPENMASTER 
OUT_DIR=out 
============================================ 
host Executable: acp (out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp) 
host Executable: aapt (out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt) 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
collect2: ld returned 1 exit status 
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp] Error 1 
make: *** Waiting for unfinished jobs.... 
host Executable: aidl (out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl) 
logtags: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/telephony/java/com/android/internal/telephony/EventLogTags.java <= frameworks/base/telephony/java/com/android/internal/telephony/EventLogTags.logtags 
/usr/bin/ld: cannot find -lz 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
collect2: ld returned 1 exit status 
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.so when searching for -lstdc++ 
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libstdc++.a when searching for -lstdc++ 
/usr/bin/ld: cannot find -lstdc++ 
collect2: ld returned 1 exit status 
make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] Error 1 

ps:隨時向我詢問有關我的環境的更多細節,我會提供它,這只是我不確定還有什麼要包括的內容,而且我不想讓這篇文章密集地閱讀。

感謝您的任何幫助。

@homer_simpson我想我解決libz進行開發包的丟失與」 「命令和apt-get安裝的zlib1g-dev的」

但是當我嘗試 「命令和apt-get安裝的libstdC++」,我得到下面的輸出:

Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
Note, selecting 'libstdc++-dev-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.2-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++5' for regex 'libstdc+' 
Note, selecting 'libstdc++6' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armel-cross-armhf' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.1-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++-dev-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.1-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.2-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++2.9-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-pic' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-armhf-cross-dbg-armel' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.3-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dev-armel-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.3-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++-dev-armhf-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++2.10-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++2.9-glibc2.1-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dbg-armel-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.2-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.2-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armhf-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-pic-armel-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-pic' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-dev-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-pic-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++5-3.3-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-dev-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-dev-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-pic-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dev-armhf-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++5-3.3-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++5-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++5-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-pic-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.3-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.3-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-dev-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.3-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-pic' for regex 'libstdc+' 
Note, selecting 'libstdc++5-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.0-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-dev-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.5-pic-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.0-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dbg-armhf-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armhf-cross-armel' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-pic-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.0-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++2.8-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-pic-armhf-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++5-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.0-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-dev-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++-dev-armel-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++5-3.3-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.1-dbg-armel-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++5-3.3-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-pic-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++3.0-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.6-armel-cross-dbg-armhf' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-doc' for regex 'libstdc+' 
Note, selecting 'libstdc++6-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.1-dbg-armhf-cross' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-dbg' for regex 'libstdc+' 
Note, selecting 'libstdc++6-4.4-dev' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armel-dcv1' for regex 'libstdc+' 
Note, selecting 'libstdc++6-armel-cross' instead of 'libstdc++6-armel-dcv1' 
Note, selecting 'libstdc++6-armhf-cross' instead of 'libstdc++6-armhf-dcv1' 
libstdc++6 is already the newest version. 
libstdc++6-4.6-dev is already the newest version. 
libstdc++6-4.6-dev set to manually installed. 
Some packages could not be installed. This may mean that you have 
requested an impossible situation or if you are using the unstable 
distribution that some required packages have not yet been created 
or been moved out of Incoming. 
The following information may help to resolve the situation: 

The following packages have unmet dependencies: 
libstdc++6-4.5-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-1ubuntu2 is to be installed 
libstdc++6-4.5-dbg-armel-cross : Conflicts: libstdc++6-4.4-dbg-armel-cross but 4.4.7-1ubuntu2cross1.52 is to be installed 
libstdc++6-4.5-dbg-armhf-cross : Conflicts: libstdc++6-4.4-dbg-armhf-cross but 4.4.7-1ubuntu2cross1.52 is to be installed 
libstdc++6-4.5-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-1ubuntu2 is to be installed 
libstdc++6-4.6-dbg : Conflicts: libstdc++6-4.4-dbg but 4.4.7-1ubuntu2 is to be installed 
         Conflicts: libstdc++6-4.5-dbg but 4.5.3-12ubuntu2 is to be installed 
libstdc++6-4.6-dbg-armel-cross : Conflicts: libstdc++6-4.4-dbg-armel-cross but 4.4.7-1ubuntu2cross1.52 is to be installed 
            Conflicts: libstdc++6-4.5-dbg-armel-cross but 4.5.3-12ubuntu2cross1.61 is to be installed 
libstdc++6-4.6-dbg-armhf-cross : Conflicts: libstdc++6-4.4-dbg-armhf-cross but 4.4.7-1ubuntu2cross1.52 is to be installed 
            Conflicts: libstdc++6-4.5-dbg-armhf-cross but 4.5.3-12ubuntu2cross1.61 is to be installed 
libstdc++6-4.6-doc : Conflicts: libstdc++6-4.4-doc but 4.4.7-1ubuntu2 is to be installed 
         Conflicts: libstdc++6-4.5-doc but 4.5.3-12ubuntu2 is to be installed 
E: Unable to correct problems, you have held broken packages. 
+0

在谷歌新聞組Android建築將是更合適的地方,https://groups.google.com/forum/?fromgroups#!forum/android-building,你可能會得到比這裏更好的迴應:)因此,這不是一個編程問題,也不適合StackOverflow。查看FAQ(http://stackoverflow.com/faq),然後投票結束此事。 – t0mm13b

回答

1

我從來沒有在我自己構建Android,但它看起來像你缺少的libz進行和libstdC++的開發包你的Linux版本

+0

在原文中增加了一些細節,感謝您的幫助。 –

+0

我想你需要一個libstdC++ ???? - dev-arm包,用於交叉編譯Android。但我從來沒有這樣做過。 –

0

最有可能你已經錯過了$ source build/envsetup.sh一步,。是p每次註銷/登錄到終端時都會執行此操作。這一步設置適當的路徑到庫和可執行文件,並且你的構建絕對找不到其中的一些。

如果一切都失敗了,我建議你使用Ubuntu 10.10建設的Android,因爲它是Linux的實際使用谷歌的版本,應該工作得很好(它爲我=)

+0

我沒有錯過。 build/envsetup.sh –

+0

然後,我會推薦Ubuntu 10.4-10.10,它工作,我試過了。其實我已經從不同的發行版/版本開始了,但是在得到一些有趣的錯誤之後,我不知道如何修復,我花了30分鐘來安裝Ubuntu 10.10並且從此沒有任何問題。 – lenik

+0

我花了很多時間設置環境,我非常沉默地開始:(。感謝您的建議。 –