我试图从音频文件中提取一些功能,MFCC准确无误。然后我找到了一个C库LibXtract,它可以帮我完成工作。
我正在尝试在iOS项目中使用LibXtract,我已经按照本教程
但我在处理过程中遇到了一些问题,首先我得到了这个警告
ld:警告:忽略文件....... / libLibXtract.a,文件中缺少必需的体系结构i386 .... / libLibXtract.a
和那些错误
架构i386的未定义符号: “_xtract_asdf”,引自: - VoiceRecAppDelegate.o中的[VoiceRecAppDelegate applicationWillResignActive:]
ld:找不到架构i386的符号 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)
所以我想请求你帮忙解决这个问题,如果可能的话,我想从头开始用obj-C代码提取MFCC。
此致 奥马
答案 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源代码编译到您的应用程序中,您可以从链接器设置(或框架)中删除libxtract.a。