2012-06-27 158 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

我花了很多时间设置环境,我非常沉默地开始:(。感谢您的建议。 –