我正在尝试从音频文件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,文件.... / libLibXtract.a中缺少必需的体系结构i386
和那些错误
体系结构i386的 undefined symbol :
“_xtract_asdf”,引用自:
-VoiceRecAppDelegate.o中的[VoiceRecAppDelegate applicationWillResignActive:]
ld:找不到体系结构i386的符号
铛:错误:链接器命令失败,退出代码为1(使用-v查看调用)
因此,我想在这个问题上寻求您的帮助,如果可能的话,我想仅使用obj-C代码从头开始提取MFCC。
问候,
奥马尔
最佳答案
听起来您正在尝试以模拟器为目标来构建应用程序,但是LibXtract静态库不是为i386体系结构构建的。
您可以通过以下方式进行确认:
lipo -info /path/to/libxtract.a
lipo
的结果应列出i386体系结构。如果没有,请检查LibXtract Xcode项目的“支持的平台”构 build 置中是否包含iphonesimulator,以及体系结构列表中是否包含i386。
也可以从命令行为iOS / Simulator编译基于自动工具的库。可以在here上找到一些说明。注意:这些方法有些过时,因此尽管原理保持不变,但某些选项可能需要调整。
但是,通过将LibXtract源拖动到应用程序的Xcode项目中,将LibXtract编译到您的应用程序中要容易得多!
通常,我的项目中通常会有一个“库”组,在该组中放置第三方资源(例如LibXtract),如下所示:
将文件拖到项目中时,请确保选中“添加到目标”中应用程序的复选框。
然后,LibXtract源将被编译到您的应用程序中,并且您可以从链接器设置(或框架)中删除libxtract.a。