如今,当我尝试在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构建库。