当我尝试在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的简单类。
有谁知道这件事?
答案 0 :(得分:1)
似乎你没有为iOS重新编译库,你似乎试图链接到i386版本的库。您粘贴的错误消息中的第一行非常清楚。
iOS在ARM处理器上运行,因此您需要为ARM构建库。