我一直在尝试在Mac上使用C++、Eclipse和Sourcery Lite版ARM工具链为arm6/arm7开发静态库(.a)。我已经成功地为Eclipse设置(编译/构建/配置) sourcery lite工具链,并且能够为arm9构建静态库而不会出现任何错误。不知何故,它不能编译/编译arm6/arm7。我不知道为什么?我得到以下编译时错误:“选定的处理器不支持ARM模式` `bx‘”同样的代码适用于arm9。
但是当我使用"lip -info“检查构建的静态库时,它会显示"lipo: archive with no架构规范: libHelloCppLib.a (无法确定它的架构)”。此外,我无法在我的iPhone应用程序中使用该库。有人能帮帮忙吗?这里面会有什么问题呢?谢谢。
发布于 2013-08-23 20:23:25
Sourcery CodeBench支持armv4、armv5和armv7。v5设置应该可以在v6/v7硬件上正常工作。
如果您使用的是非linux版本("EABI"),那么您可以使用armv4、armv6-M和armv7。我不确定"v6-M“multilib是否适合您(它适用于微控制器);在这种情况下,使用v4可能会更好。
可以指定官方支持的架构之外的架构(例如-march=armv6),编译器可能会做正确的事情(可能),但由于它没有为那些(libgcc.a)提供支持库,所以它将不得不使用它确实有的一个(最有可能是v4的),并且你可能会得到链接错误。试一试,看看:)
顺便说一句,如果你使用的是"Sourcery G++",听起来不像是最新版本。它被称为"Sourcery CodeBench“已经有几年了。
https://stackoverflow.com/questions/18373123
复制相似问题