为ARM体系结构构建libsndfile库

时间:2012-10-31 14:50:39

标签: linux build makefile terminal libsndfile

我需要构建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架构构建它?

我找到了this subject 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

我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

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

$ grep _os config.log
$ grep _CC config.log