架构armv7的未定义符号:用于外部C库

时间:2012-10-02 10:15:20

标签: iphone objective-c ios c

我下载了一个音频编解码器的C库,我将其编译并添加到我的项目中。

现在,每次我尝试使用它时,它会给我一个未定义的架构armv7符号:当我尝试调用库中的一个方法时出错。

这可能是什么问题?我是否需要编译特定于armv7的库?

1 个答案:

答案 0 :(得分:2)

您似乎已经设置了您的XCode项目,以便为armv7armv7s架构进行编译(请注意最后的 s )。但是,C库的项目仅针对armv7编译。

要修复,要么更改库项目以便为两个体系结构进行编译,要么将应用程序项目更改为仅编译为armv7

我会选择第二个选项,因为目前不需要armv7s支持,而且很少有设备可以使用它。

<强>更新

如果您也为模拟器收到相同的消息,那么您的库项目也不会为'i386'编译(仅限模拟器需要)。它表示您的C库项目根本没有设置用于编译多个体系结构。所以第二个选项(而不是使用模拟器)是最简单的方法。