如今,当我尝试在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的简单类。

有谁知道这件事吗?

最佳答案

似乎您没有为iOS重新编译该库,您似乎正在尝试针对该库的i386版本进行链接。您粘贴的错误消息中的第一行非常清楚。

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

10-08 07:46