2013-03-04 80 views
0

我已經成功實施了RadioTunes API在我的ios項目中用於實況廣播流。 爲此,我使用戶RadioTunes.Framewrok,libavcodec.a,libavformat.a,libavutil.a,libswresample.a.重複的符號錯誤:RadioTunes框架和Opentok.Framework

它在我的項目中工作得很完美。

現在我想整合OpenTok.framework(從TokBox.com)的現場視頻聊天api.But當我試圖包括本openTok.framework在我的項目,我得到以下dupicate語法錯誤:

duplicate symbol _avcodec_register_all in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(allcodecs.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavcodec.a(allcodecs.o) 
duplicate symbol _ff_prefetch_arm in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(dsputil_arm.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavcodec.a(dsputil_arm.o) 
duplicate symbol _ff_put_pixels16_arm in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(dsputil_arm.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavcodec.a(dsputil_arm.o) 
duplicate symbol _ff_put_pixels8_arm in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(dsputil_arm.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavcodec.a(dsputil_arm.o) 


........ 
duplicate symbol _ff_get_cpu_flags_arm in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(cpu.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavutil.a(cpu.o) 
duplicate symbol _av_get_channel_layout_nb_channels in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(audioconvert.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavutil.a(audioconvert.o) 
duplicate symbol _av_get_channel_layout_string in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(audioconvert.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavutil.a(audioconvert.o) 
duplicate symbol _av_strcasecmp in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(avstring.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavutil.a(avstring.o) 


duplicate symbol _av_register_all in: 
    ...... 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavformat.a(utils.o) 
duplicate symbol _ff_read_packet in: 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/Opentok.framework/Opentok(utils.o) 
    /Volumes/Drive A/Chirag/iOS project/Dolphin7-iOS-Src-v.1.6/External/ffmpeg/lib/libavformat.a(utils.o) 
........ 
ld: 787 duplicate symbols for architecture armv7 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

這裏,「External/ffmpeg/lib /」是RadioTunes.Framework的必需目錄。

現在,我無法刪除RadioTunes真實框架,也想添加OpenTok.framwork

該怎麼做?

任何人都可以幫助我,如何刪除這個重複的語法錯誤,但需要RadioTune.framework和OpenTok.framework。

+0

你好,我想實現radioTunes sdk但沒什麼問題。 如何播放.wav文件在收音機sdk。感謝提前plz幫助我:) – Bajaj 2013-08-08 11:54:38

回答

0

如果我明白瞭解問題,請轉到「構建階段」中的「編譯源代碼」部分,只需刪除ffmpeg文件的重複條目即可。

+0

Opentok.framework有一個FFmpeg的構建,但RadioTunes依賴項的必要編解碼器可能不會被編譯進去。Gabriele大部分是正確的。第一步是通過從「Link Binary with Libraries」任務中刪除ffmpeg的libav * .a文件,從構建中刪除ffmpeg靜態庫。 – wobbals 2013-03-11 22:02:46