2012-10-31 38 views
1

我需要建立使用它libsndfile在iPhone/iPad的我的音頻引擎。我已經建立了它沒有錯誤,但對於i386架構,所以當我建立我的項目,我已經得到了一些錯誤:爲ARM架構構建libsndfile庫

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其中埃裏克·德卡斯特羅說洛波做到這一點:

./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 

我該怎麼辦?謝謝!

+0

這行配置是正確的,假設你有一個手臂未知的Linux gnueabi工具鏈在你的PATH上。如果它不起作用,那麼這可能是libsndfile的autotools配置中的一個錯誤。我認爲這裏沒有人可以幫助你,你應該把它報告給作者。 –

回答

0

您看到的第一個錯誤塊(i386/FLAC)似乎是因爲配置過程檢測到FLAC頭文件,但找不到FLAC庫。

第二塊錯誤,你說的是交叉編譯有錯誤,與x86_64有關。你真的有一個手臂交叉編譯器安裝?

什麼是以下命令的輸出(在libsndfile源目錄中運行運行./configure後):

$ grep _os config.log 
$ grep _CC config.log 
+0

感謝您的回覆,我自己搜索了很多,終於找到了這個github:https://github.com/sbooth/AudioFrameworks 我已經嘗試過使用他的xcode項目,現在都在工作! 非常感謝您的時間和您的圖書館:) – Dono