1

我正在尝试从音频文件中提取一些特征,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 的未定义符号:“_xtract_asdf”,引用自:VoiceRecAppDelegate.o 中的 -[VoiceRecAppDelegate applicationWillResignActive:]

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

所以我想在这个问题上寻求你的帮助,如果可能的话,我想只用 obj-C 代码从头开始提取 MFCC。

问候, 奥马尔

4

1 回答 1

0

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

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

lipo -info /path/to/libxtract.a

结果lipo应该列出 i386 架构。

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

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

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

我通常倾向于在我的项目中有一个“库”组,我将第三方资源(如 LibXtract)放在其中,如下所示:

LibXtract 源代码树

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

在此处输入图像描述

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

于 2014-07-18T09:07:50.783 回答