iOS上的libsndfile

时间:2011-10-20 06:48:42

标签: c++ c ios libsndfile

当我尝试在libsndfile上使用iOS时,我遇到了一个奇怪的链接问题:

我在libsndfile上编译了MACOSX 10.6.8,它通过了所有检查。但当我将它添加到Xcode并尝试在iOS上编译时,我收到了这些链接警告和错误:

ld: warning: in /Users/chencyz/Desktop/Development/SDK/libsndfile/lib/libsndfile.a, file was built for unsupported file format which is not the architecture being linked (i386)
Undefined symbols:
  "_sf_close", referenced from:
      SndfileHandle::SNDFILE_ref::~SNDFILE_ref()in AudioReader.o
  "_sf_error", referenced from:
      SndfileHandle::error() const in AudioReader.o
  "_sf_open", referenced from:
      SndfileHandle::SndfileHandle(char const*, int, int, int, int)in AudioReader.o
  "_sf_read_float", referenced from:
      SndfileHandle::read(float*, long long)in AudioReader.o
ld: symbol(s) not found

AudioReader只是一个使用libsndfile的程序API的简单类。

有谁知道这件事?

1 个答案:

答案 0 :(得分:1)

似乎你没有为iOS重新编译库,你似乎试图链接到i386版本的库。您粘贴的错误消息中的第一行非常清楚。

iOS在ARM处理器上运行,因此您需要为ARM构建库。