linux - 为 ARM 架构构建 libsndfile 库

标签 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

我该怎么办?谢谢!

最佳答案

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

第二 block 错误,你说的是交叉编译的,有x86_64相关的错误。你真的安装了 arm 交叉编译器吗?

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

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

关于linux - 为 ARM 架构构建 libsndfile 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13160668/

相关文章:

c++ - Makefile.am/Configure.ac 条件环境变量检查

linux - tar.gz 和 tgz 是一回事吗?

linux - Azure Blob 存储是否支持 http2?

c++ - 如何在C++中链接两个项目

linux - 支持 RTMP 的 FFMPEG 静态构建?

c++ - 由于 c++11 错误无法构建 GCC

c - 函数未定义,即使它在不同的 .h 文件中

c - Makefile:没有使用变量创建目标的规则

linux - 如何在 Linux 上将 USB 打印机模拟为 LPT?

c - 信号的范围是什么?