我一直在完成构建Android源代码的步骤。在按照说明设置完所有内容后,我执行了“make”。 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:警告:忽略文件 出/主机/达尔文-86 / OBJ /可执行文件/ emulator_intermediates /安卓/ HW-kmsg.o, 文件是为i386而不是 被链接的架构(x86_64)
任何人都可以帮我解决这个问题吗?
谢谢, 克雷格
答案 0 :(得分:1)
谢谢dljava。是的,Xcode 4.x是一个问题,但不是我发现的唯一问题。对不起,我没有回来发布我的一些调查结果。我被别人锁定了。
官方说来,Android源代码版本仅在Leopard上支持,而不是Snow Leopard。谷歌搜索你可以找到一些关于这个以及人们如何解决这个问题的帖子。解决方案通常涉及更改各种makefile和其他设置。关于这些解决方案的一点是,许多已经陈旧,不再有效。一些作者更新了他们的指示,而另一些则没有。
此外,最新的Xcode也证明了问题。一般来说,我尝试使用Snow Leopard和最新的XCode在我的iOS开发机器上构建Android源代码就像是一场永无止境的令人沮丧的游戏。
我的解决方案只是使用目前尚未用作Android源开发盒的Mac mini。我在上面做了一个干净的Leopard安装。我安装了支持Leopard的最新版iPhone SDK + XCode。我认为那是针对iOS 3.1.3的。然后按照Android开发站点上的说明构建源代码后,我成功了。
所以我建议使用单独的盒子做什么,或者如果你能够在盒子上创建可引导分区并在其上安装Leopard。这似乎是以最少的脑损伤做到这一点的方法。
祝你好运,克雷格
答案 1 :(得分:0)
升级到Xcode 4.x是原因,尝试卸载并重新安装3.x
答案 2 :(得分:0)
我有更好的运气来编译和扩展CyanogenMod,而不是直接使用AOSP,而我正在使用Snow Leopard。许多受支持的设备都有instructions。此外,Cyanogen似乎非常密切关注AOSP,例如:最近的2.3.4支持。
如果您在Mac上为CyanogenMod未正式支持的设备构建,Mac template是一个很好的起点。
就个人而言,我使用的是自制软件而不是MacPorts,但这只是一个小细节。
- Pekka Nikander
答案 3 :(得分:0)
我绝对可以成为第二个dljava。 是 XCode 4.2导致probs的原因。我在iMac SnowLeopard 10.6.8上做了完全相同的步骤,运行XCode 3.2.6,一切都很好......在使用XCode 4.2的MacBook上遇到麻烦之后