1

我需要构建 libsndfile 以在 Iphone/Ipad 上的音频引擎中使用它。我没有错误地构建它,但是对于 i386 架构,所以当我构建我的项目时遇到了一些错误:

Undefined symbols for architecture i386:
  "_FLAC__StreamDecoderErrorStatusString", referenced from:
      _sf_flac_error_callback in libsndfile.a(flac.o)
  "_FLAC__StreamEncoderInitStatusString", referenced from:
      _flac_write_header in libsndfile.a(flac.o)
  "_FLAC__metadata_object_delete", referenced from:
      _flac_close in libsndfile.a(flac.o)
  "_FLAC__metadata_object_new", referenced from:
      _flac_write_header in libsndfile.a(flac.o)
  "_FLAC__metadata_object_vorbiscomment_append_comment", referenced from:
      _flac_write_header in libsndfile.a(flac.o)

如何为 arm 架构构建它?

我发现了 Erik de Castro Lopo 说要这样做的主题:

./configure --prefix=$HOME/Arm --build=i386-linux --host=arm-unknown-linux-gnueabi

但是当我构建时,我得到了这个:

undefined symbols for architecture x86_64:
  "_AudioQueueAddPropertyListener", referenced from:
      _main in sndfile-play.o
  "_AudioQueueAllocateBuffer", referenced from:
      _main in sndfile-play.o
  "_AudioQueueDispose", referenced from:
      _main in sndfile-play.o
  "_AudioQueueEnqueueBuffer", referenced from:
      _main in sndfile-play.o
      _macosx_audio_out_callback in sndfile-play.o
  "_AudioQueueFreeBuffer", referenced from:
      _main in sndfile-play.o

我能怎么做 ?谢谢!

4

1 回答 1

0

您看到的第一块错误(i386/FLAC)似乎是因为配置过程检测到 FLAC 头文件,但找不到 FLAC 库。

您说的第二个错误块来自交叉编译,其中包含与 x86_64 相关的错误。你真的安装了arm交叉编译器吗?

以下命令的输出是什么(运行 ./configure 后在 libsndfile 源目录中运行):

$ grep _os config.log
$ grep _CC config.log
于 2012-11-02T17:12:35.027 回答