1

我已经完成了构建 Android 源代码的步骤。根据说明完成所有设置后,我执行了“make”。制作过程一直持续到最终失败并出现以下错误的链接:

Undefined symbols for architecture x86_64:
  "_main", referenced from:
      start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status

另一件值得注意的事情是,该链接正在生成许多类似于此的警告:

ld:警告:忽略文件out/host/darwin-x86/obj/EXECUTABLES/emulator_intermediates/android/hw-kmsg.o,文件是为i386构建的,它不是被链接的架构(x86_64)

谁能帮我解决这个问题?

谢谢,克雷格

4

4 回答 4

1

谢谢dljava。是的,Xcode 4.x 是一个问题,但不是我发现的唯一问题。很抱歉我没有早点回来发布我的一些发现。我被其他东西锁定了。

官方表示,Android 源代码构建仅支持 Leopard,不支持 Snow Leopard。谷歌搜索你可以找到一些关于这个以及人们如何解决它的帖子。该解决方案通常涉及更改各种 makefile 和其他设置。关于这些解决方案的一件事是,许多解决方案已经过时并且不再有效。一些作者更新了他们的说明,而另一些则没有。

此外,最新的 Xcode 也被证明是有问题的。总的来说,我尝试在我的 iOS 开发机器上使用 Snow Leopard 和最新的 XCode 构建 Android 源代码的尝试就像一场永无止境的令人沮丧的打地鼠游戏。

我的解决方案是简单地使用一个目前没有被用作 Android 源开发盒的 Mac mini。我在上面做了一个全新的 Leopard 安装。我安装了支持 Leopard 的最新版本的 iPhone SDK + XCode。我认为那是针对 iOS 3.1.3 的。然后按照 Android 开发网站上的说明构建源代码后,我成功了。

所以我建议要么我用一个单独的盒子做了什么,或者你是否能够在你的盒子上创建一个可引导分区并在上面安装 Leopard。这似乎是对脑损伤最小的方法。

祝你好运,

克雷格

于 2011-04-04T18:56:49.467 回答
0

我在编译和扩展 CyanogenMod 而不是直接使用 AOSP 时运气更好,而且我在 Snow Leopard 上进行构建。有许多受支持设备的说明。此外,Cyanogen 似乎非常密切地关注 AOSP,例如最近的 2.3.4 支持。

如果您在 Mac 上为 CyanogenMod 未正式支持的设备构建,Mac 模板是一个不错的起点。

就个人而言,我使用的是自制软件而不是 MacPorts,但这是一个小细节。

——佩卡·尼坎德

于 2011-05-18T19:54:45.093 回答
0

我绝对可以秒dljava。导致问题的是XCode 4.2。我在 iMac SnowLeopard 10.6.8 上做了完全相同的步骤,运行 XCode 3.2.6,一切都很好......在我的 MacBook 上用 XCode 4.2 遇到了几天的麻烦之后

于 2011-10-26T23:37:13.070 回答
0

升级到 Xcode 4.x 是原因,尝试卸载并重新安装 3.x

于 2011-04-03T07:07:53.590 回答