2013-03-04 83 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