我下载了一个用于音频编解码器的 C 库,我对其进行编译并将其添加到我的项目中。
现在,每次我尝试使用它时,它都会给我一个 Undefined symbols for architecture armv7:当我尝试调用库的方法之一时出错。
可能是什么问题?我是否需要编译特定于 armv7 的库?
我下载了一个用于音频编解码器的 C 库,我对其进行编译并将其添加到我的项目中。
现在,每次我尝试使用它时,它都会给我一个 Undefined symbols for architecture armv7:当我尝试调用库的方法之一时出错。
可能是什么问题?我是否需要编译特定于 armv7 的库?
您似乎已经设置了您的 XCode 项目,以便同时编译armv7
和armv7s
架构(请注意最后的 s)。但是,C 库的项目仅针对armv7
.
要解决此问题,请更改库项目以使其同时针对两种架构进行编译,或者将应用程序项目更改为仅针对armv7
.
我会选择第二种选择,因为目前不需要armv7s
支持,而且很少有设备可以使用它。
更新:
如果您在模拟器上也收到相同的消息,那么您的库项目也不会为“i386”编译(仅模拟器需要)。这表明您的 C 库项目根本没有设置为针对多个体系结构进行编译。所以第二个选项(而不是使用模拟器)是最简单的方法。