我一直在尝试使用Mac OS上的C ++,Eclipse和Sourcery Lite版ARM工具链为arm6 / arm7开发静态库(.a)。我已经为Eclipse成功设置(编译/构建/配置)sourcery lite工具链,并且能够为arm9构建静态库而不会出现任何错误。不知何故,它没有为arm6 / arm7编译/构建。我不知道为什么?我得到以下编译时错误: “所选处理器不支持ARM模式`bx lr'”相同的代码适用于arm9。
但是当我使用“lip -info”检查构建的静态库时,它说“lipo:没有架构规范的存档:libHelloCppLib.a(无法确定它的架构)”。此外,我无法将该lib用于我的iPhone应用程序。 有人可以帮忙吗?怎么可能是错的?谢谢。
答案 0 :(得分:0)
Sourcery CodeBench for Linux支持armv4,armv5和armv7。 v5设置应该在v6 / v7硬件上正常工作。
如果您使用的是非Linux版本(“EABI”),那么您拥有armv4,armv6-M和armv7。我不确定“v6-M”multilib是否适合您(适用于微控制器);在这种情况下,你可以用v4做得更好。
可能指定除官方支持的架构之外的架构(例如-march=armv6
),并且编译器会做正确的事情(可能),但因为它没有带来支持为那些(libgcc.a
)构建的库,它必须使用它拥有的库(很可能是v4),并且可能获取链接错误。试试吧,看看:)。