我一直在尝试在Mac OS上使用C++、Eclipse和Sourcery Lite版ARM工具链为arm6/arm7开发静态库(.a)。我已经成功地为Eclipse设置了(编译/构建/配置)sourcery-lite工具链,并且能够为arm9构建静态库,没有任何错误。不知怎的,它并没有为arm6/arm7编译/构建。我不知道为什么?我得到以下编译时错误:"所选处理器不支持ARM模式'bx-lr'"相同的代码适用于arm9。
但当我使用"lip-info"检查构建的静态库时,它会说"lipo:archive with no architecture specifications:libHelloCppLib.a(无法确定其架构)"。此外,我无法在我的iPhone应用程序中使用该库。有人能帮忙吗?这有什么错?非常感谢。
如果您使用的是非linux版本("EABI"),那么您有armv4、armv6-M和armv7。我不确定"v6-m"多分支是否适合您(它适用于微控制器);在这种情况下,v4可能会做得更好。
可以指定官方支持的体系结构之外的体系结构(例如-march=armv6
),编译器会做正确的事情(可能),但由于它没有为这些体系结构(libgcc.a
)构建支持库,它将不得不使用它现有的支持库(很可能是v4),并且可能会出现链接错误。试试看:)
顺便说一句,如果你使用的是"Sourcery G++",听起来并不是最新版本。它被称为"源代码库"已经有几年了。