【问题标题】:How to Use LibXtract with iOS project?如何在 iOS 项目中使用 LibXtract?
【发布时间】:2013-11-24 11:12:47
【问题描述】:

我正在尝试从音频文件中提取一些特征,准确地说是 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 applicationWillResignActive:] 在 VoiceRecAppDelegate.o

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

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

问候, 奥马尔

【问题讨论】:

    标签: ios c audio mfcc


    【解决方案1】:

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

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

    lipo -info /path/to/libxtract.a
    

    lipo 的结果应该列出 i386 架构。

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多