如何在iOS项目中使用LibXtract?

时间:2013-11-24 11:12:47

标签: ios c audio mfcc

我试图从音频文件中提取一些功能,MFCC准确无误。然后我找到了一个C库LibXtract,它可以帮我完成工作。

我正在尝试在iOS项目中使用LibXtract,我已经按照本教程

http://inote.apptrek.net/2011/10/howto-compile-native-c-codes-to-a-library-for-ios-development-in-xcode-take-mosquitto-for-an-example/

但我在处理过程中遇到了一些问题,首先我得到了这个警告

ld:警告:忽略文件....... / libLibXtract.a,文件中缺少必需的体系结构i386 .... / libLibXtract.a

和那些错误

架构i386的未定义符号:   “_xtract_asdf”,引自:        - VoiceRecAppDelegate.o中的[VoiceRecAppDelegate applicationWillResignActive:]

ld:找不到架构i386的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

所以我想请求你帮忙解决这个问题,如果可能的话,我想从头开始用obj-C代码提取MFCC。

此致 奥马

1 个答案:

答案 0 :(得分:0)

听起来您正在尝试使用 Simulator 作为目标来构建应用程序,但LibXtract静态库不是为i386架构构建的

您可以通过以下方式确认:

lipo -info /path/to/libxtract.a

lipo的结果应列出i386架构。

如果没有,则检查iphoneimulator是否包含在LibXtract Xcode项目的Supported Platforms构建设置中,并且i386包含在体系结构列表中。

也可以从命令行为iOS / Simulator编译基于autotools的库。可以找到一些相关说明here。注意:这些都有点过时,所以有些选项可能需要调整,尽管原理保持不变。

但是,通过将LibXtract源拖动到应用程序的Xcode项目中,将LibXtract编译到应用程序中要简单得多!

我通常在我的项目中有一个“库”组,我根据该组放置第三方来源(如LibXtract),如下所示:

LibXtract Source Tree

将文件拖入项目时,请确保在“添加到目标”中选中应用程序的复选框。

enter image description here

然后将LibXtract源代码编译到您的应用程序中,您可以从链接器设置(或框架)中删除libxtract.a。