移植live555到android上
2013-09-07 19:30
441 查看
参考文章http://blog.csdn.net/baby313/article/details/7289489
下载了截止目前最新版本live.2013.08.31.tar.gz,在NDK版本是ndkr5。按照上面的文章写的Android.mk结果编译不通过,先是遇到这个错误:
后来修改了Android.mk里的LOCAL_C_INCLUDES段,把./live改成$(LOCAL_PATH)/live后解决。
再次编译,遇到下面的错误
再次编译,遇到了下面的错误
检查发现是没有包含ProxyServerMediaSession.cpp代码的编译,把这个文件加到最后一行,再次编译终于通过了,记录一下,顺便附上我的Android.mk
下载了截止目前最新版本live.2013.08.31.tar.gz,在NDK版本是ndkr5。按照上面的文章写的Android.mk结果编译不通过,先是遇到这个错误:
E:/develop/android/project/live555lib/jni/live/liveMedia/our_md5hl.c:14:23: error: NetCommon.h: No such file or directory /cygdrive/e/Develop/Android/ndk/build/core/build-binary.mk:197: recipe for target `/cygdrive/e/develop/android/project/live555lib/obj/local/armeabi/objs/live555/./live/liveMedia/our_md5hl.o' failed make: *** [/cygdrive/e/develop/android/project/live555lib/obj/local/armeabi/objs/live555/./live/liveMedia/our_md5hl.o] Error 1
后来修改了Android.mk里的LOCAL_C_INCLUDES段,把./live改成$(LOCAL_PATH)/live后解决。
再次编译,遇到下面的错误
make: *** 没有规则可以创建“/cygdrive/e/develop/android/project/live555lib/obj/local/armeabi/objs/live555/./live/liveMedia/MP3HTTPSource.o”需要的目标“/cygdrive/e/develop/android/project/live555lib/jni/./live/liveMedia/MP3HTTPSource.cpp”。 停止。发现源代码里不存在MP3HTTPSource.cpp文件,于是在Android.mk的LOCAL_SRC_FILES删除这个文件所在行
再次编译,遇到了下面的错误
E:/develop/android/project/live555lib/obj/local/armeabi/objs/live555/live/liveMedia/RTSPServer.o: In function `RTSPServerWithREGISTERProxying::implementCmd_REGISTER(char const*, char const*, int)': E:/develop/android/project/live555lib/jni/live/liveMedia/RTSPServer.cpp:2218: undefined reference to `ProxyServerMediaSession::createNew(UsageEnvironment&, RTSPServer*, char const*, char const*, char const*, char const*, unsigned short, int, int)' collect2: ld returned 1 exit status /cygdrive/e/Develop/Android/ndk/build/core/build-binary.mk:266: recipe for target `/cygdrive/e/develop/android/project/live555lib/obj/local/armeabi/liblive555.so' failed make: *** [/cygdrive/e/develop/android/project/live555lib/obj/local/armeabi/liblive555.so] Error 1
检查发现是没有包含ProxyServerMediaSession.cpp代码的编译,把这个文件加到最后一行,再次编译终于通过了,记录一下,顺便附上我的Android.mk
#一般都在本地路径,所以这里也是固定写法 LOCAL_PATH := $(call my-dir) #都以此开始 include $(CLEAR_VARS) LOCAL_MODULE := live555 LOCAL_SRC_FILES :=\ ./live/groupsock/GroupEId.cpp \ ./live/groupsock/IOHandlers.cpp \ ./live/groupsock/NetInterface.cpp \ ./live/groupsock/NetAddress.cpp \ ./live/groupsock/GroupsockHelper.cpp \ ./live/groupsock/Groupsock.cpp \ ./live/groupsock/inet.c \ ./live/BasicUsageEnvironment/DelayQueue.cpp \ ./live/BasicUsageEnvironment/BasicHashTable.cpp \ ./live/BasicUsageEnvironment/BasicUsageEnvironment.cpp \ ./live/BasicUsageEnvironment/BasicUsageEnvironment0.cpp \ ./live/BasicUsageEnvironment/BasicTaskScheduler.cpp \ ./live/BasicUsageEnvironment/BasicTaskScheduler0.cpp \ ./live/UsageEnvironment/HashTable.cpp \ ./live/UsageEnvironment/strDup.cpp \ ./live/UsageEnvironment/UsageEnvironment.cpp \ ./live/liveMedia/MP3Internals.cpp \ ./live/liveMedia/StreamReplicator.cpp \ ./live/liveMedia/MPEG4GenericRTPSource.cpp \ ./live/liveMedia/BitVector.cpp \ ./live/liveMedia/MatroskaFileParser.cpp \ ./live/liveMedia/ADTSAudioFileServerMediaSubsession.cpp \ ./live/liveMedia/H264VideoRTPSink.cpp \ ./live/liveMedia/MP3StreamState.cpp \ ./live/liveMedia/RTSPServerSupportingHTTPStreaming.cpp \ ./live/liveMedia/MP3AudioMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/InputFile.cpp \ ./live/liveMedia/MPEGVideoStreamParser.cpp \ ./live/liveMedia/AMRAudioFileSource.cpp \ ./live/liveMedia/Locale.cpp \ ./live/liveMedia/T140TextRTPSink.cpp \ ./live/liveMedia/MediaSink.cpp \ ./live/liveMedia/QuickTimeFileSink.cpp \ ./live/liveMedia/RTPSink.cpp \ ./live/liveMedia/VorbisAudioRTPSink.cpp \ ./live/liveMedia/AMRAudioFileSink.cpp \ ./live/liveMedia/MP3ADUTranscoder.cpp \ ./live/liveMedia/VorbisAudioMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/H264VideoFileServerMediaSubsession.cpp \ ./live/liveMedia/H263plusVideoRTPSource.cpp \ ./live/liveMedia/RTSPClient.cpp \ ./live/liveMedia/DVVideoRTPSource.cpp \ ./live/liveMedia/H264VideoStreamFramer.cpp \ ./live/liveMedia/DVVideoStreamFramer.cpp \ ./live/liveMedia/MultiFramedRTPSink.cpp \ ./live/liveMedia/BasicUDPSink.cpp \ ./live/liveMedia/Base64.cpp \ ./live/liveMedia/H261VideoRTPSource.cpp \ ./live/liveMedia/MP3InternalsHuffman.cpp \ ./live/liveMedia/MPEG2TransportStreamMultiplexor.cpp \ ./live/liveMedia/MP3AudioFileServerMediaSubsession.cpp \ ./live/liveMedia/MPEG1or2AudioRTPSource.cpp \ ./live/liveMedia/H263plusVideoFileServerMediaSubsession.cpp \ ./live/liveMedia/MP3Transcoder.cpp \ ./live/liveMedia/H263plusVideoStreamParser.cpp \ ./live/liveMedia/AudioInputDevice.cpp \ ./live/liveMedia/MP3FileSource.cpp \ ./live/liveMedia/MPEG4LATMAudioRTPSource.cpp \ ./live/liveMedia/MPEG2TransportStreamFromPESSource.cpp \ ./live/liveMedia/AACAudioMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/WAVAudioFileServerMediaSubsession.cpp \ ./live/liveMedia/MP3ADURTPSource.cpp \ ./live/liveMedia/FileSink.cpp \ ./live/liveMedia/MPEG1or2DemuxedServerMediaSubsession.cpp \ ./live/liveMedia/MP3InternalsHuffmanTable.cpp \ ./live/liveMedia/TCPStreamSink.cpp \ ./live/liveMedia/MediaSource.cpp \ ./live/liveMedia/MPEG2TransportStreamFramer.cpp \ ./live/liveMedia/JPEGVideoRTPSink.cpp \ ./live/liveMedia/JPEGVideoSource.cpp \ ./live/liveMedia/AC3AudioFileServerMediaSubsession.cpp \ ./live/liveMedia/AMRAudioRTPSink.cpp \ ./live/liveMedia/MPEG4VideoFileServerMediaSubsession.cpp \ ./live/liveMedia/AMRAudioFileServerMediaSubsession.cpp \ ./live/liveMedia/H264VideoMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/MPEG2IndexFromTransportStream.cpp \ ./live/liveMedia/MPEG1or2FileServerDemux.cpp \ ./live/liveMedia/GSMAudioRTPSink.cpp \ ./live/liveMedia/MPEG1or2VideoStreamFramer.cpp \ ./live/liveMedia/AMRAudioRTPSource.cpp \ ./live/liveMedia/EBMLNumber.cpp \ ./live/liveMedia/MP3ADUinterleaving.cpp \ ./live/liveMedia/SimpleRTPSink.cpp \ ./live/liveMedia/MPEG1or2VideoRTPSink.cpp \ ./live/liveMedia/MPEG2TransportStreamTrickModeFilter.cpp \ ./live/liveMedia/AC3AudioRTPSource.cpp \ ./live/liveMedia/MultiFramedRTPSource.cpp \ ./live/liveMedia/ServerMediaSession.cpp \ ./live/liveMedia/JPEGVideoRTPSource.cpp \ ./live/liveMedia/MP3ADU.cpp \ ./live/liveMedia/FileServerMediaSubsession.cpp \ ./live/liveMedia/DVVideoFileServerMediaSubsession.cpp \ ./live/liveMedia/DarwinInjector.cpp \ ./live/liveMedia/OnDemandServerMediaSubsession.cpp \ ./live/liveMedia/H263plusVideoRTPSink.cpp \ ./live/liveMedia/TextRTPSink.cpp \ ./live/liveMedia/MPEG1or2VideoStreamDiscreteFramer.cpp \ ./live/liveMedia/MediaSession.cpp \ ./live/liveMedia/AC3AudioStreamFramer.cpp \ ./live/liveMedia/QuickTimeGenericRTPSource.cpp \ ./live/liveMedia/SimpleRTPSource.cpp \ ./live/liveMedia/FramedFileSource.cpp \ ./live/liveMedia/T140TextMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/PassiveServerMediaSubsession.cpp \ ./live/liveMedia/ByteStreamMemoryBufferSource.cpp \ ./live/liveMedia/RTCP.cpp \ ./live/liveMedia/MP3ADURTPSink.cpp \ ./live/liveMedia/ADTSAudioFileSource.cpp \ ./live/liveMedia/MPEG1or2VideoRTPSource.cpp \ ./live/liveMedia/MPEG1or2VideoFileServerMediaSubsession.cpp \ ./live/liveMedia/MPEG4ESVideoRTPSink.cpp \ ./live/liveMedia/RTPSource.cpp \ ./live/liveMedia/H264VideoStreamDiscreteFramer.cpp \ ./live/liveMedia/AVIFileSink.cpp \ ./live/liveMedia/StreamParser.cpp \ ./live/liveMedia/MPEG2TransportStreamFromESS 4000 ource.cpp \ ./live/liveMedia/VP8VideoRTPSink.cpp \ ./live/liveMedia/FramedFilter.cpp \ ./live/liveMedia/VideoRTPSink.cpp \ ./live/liveMedia/MPEG4VideoStreamDiscreteFramer.cpp \ ./live/liveMedia/QCELPAudioRTPSource.cpp \ ./live/liveMedia/MPEG4VideoStreamFramer.cpp \ ./live/liveMedia/Media.cpp \ ./live/liveMedia/ByteStreamMultiFileSource.cpp \ ./live/liveMedia/MPEG2TransportUDPServerMediaSubsession.cpp \ ./live/liveMedia/H263plusVideoStreamFramer.cpp \ ./live/liveMedia/VorbisAudioRTPSource.cpp \ ./live/liveMedia/RTSPCommon.cpp \ ./live/liveMedia/FramedSource.cpp \ ./live/liveMedia/MatroskaDemuxedTrack.cpp \ ./live/liveMedia/MPEG1or2AudioStreamFramer.cpp \ ./live/liveMedia/VP8VideoMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/MPEG1or2Demux.cpp \ ./live/liveMedia/AudioRTPSink.cpp \ ./live/liveMedia/DeviceSource.cpp \ ./live/liveMedia/MPEG1or2AudioRTPSink.cpp \ ./live/liveMedia/ByteStreamFileSource.cpp \ ./live/liveMedia/WAVAudioFileSource.cpp \ ./live/liveMedia/uLawAudioFilter.cpp \ ./live/liveMedia/RTSPServer.cpp \ ./live/liveMedia/VP8VideoRTPSource.cpp \ ./live/liveMedia/H264VideoRTPSource.cpp \ ./live/liveMedia/MatroskaFileServerDemux.cpp \ ./live/liveMedia/MPEG4LATMAudioRTPSink.cpp \ ./live/liveMedia/MPEG2TransportStreamIndexFile.cpp \ ./live/liveMedia/SIPClient.cpp \ ./live/liveMedia/BasicUDPSource.cpp \ ./live/liveMedia/AC3AudioMatroskaFileServerMediaSubsession.cpp \ ./live/liveMedia/H264VideoFileSink.cpp \ ./live/liveMedia/MPEG2TransportFileServerMediaSubsession.cpp \ ./live/liveMedia/DigestAuthentication.cpp \ ./live/liveMedia/MPEG4ESVideoRTPSource.cpp \ ./live/liveMedia/MatroskaFile.cpp \ ./live/liveMedia/MP3ADUdescriptor.cpp \ ./live/liveMedia/AMRAudioSource.cpp \ ./live/liveMedia/MPEG4GenericRTPSink.cpp \ ./live/liveMedia/MPEGVideoStreamFramer.cpp \ ./live/liveMedia/AC3AudioRTPSink.cpp \ ./live/liveMedia/DVVideoRTPSink.cpp \ ./live/liveMedia/OutputFile.cpp \ ./live/liveMedia/MPEG1or2DemuxedElementaryStream.cpp \ ./live/liveMedia/RTPInterface.cpp \ ./live/liveMedia/our_md5hl.c \ ./live/liveMedia/our_md5.c \ ./live/liveMedia/rtcp_from_spec.c \ ./live/liveMedia/ProxyServerMediaSession.cpp #./live改成$(LOCAL_PATH)/live编译通过 LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/live/BasicUsageEnvironment/include \ $(LOCAL_PATH)/live/liveMedia/include \ $(LOCAL_PATH)/live/BasicUsageEnvironment/include \ $(LOCAL_PATH)/live/groupsock/include \ $(LOCAL_PATH)/live/UsageEnvironment/include LOCAL_CPPFLAGS += -fexceptions -DXLOCALE_NOT_USED=1 -DNULL=0 -DNO_SSTREAM=1 -UIP_ADD_SOURCE_MEMBERSHIP #都以此结束,编译为动态链接库 include $(BUILD_SHARED_LIBRARY)
相关文章推荐
- Android 上如何移植live555生成库文件
- 基于移动平台的多媒体框架——移植Live555到Android上
- live555移植到Android过程.
- vlc-android 移植live555到android
- live555移植到android系统,参考某博客
- 移植live555到android下遇到的问题
- vlc-android 移植live555到android
- Android 上如何移植live555生成库文件
- vlc-android 移植live555到android
- 移植live555到android
- vlc-android 移植live555到android
- vlc-android 移植live555到android
- vlc-android 移植live555到android
- live555 android移植
- vlc-android 移植live555到android
- 移植 ethernet 到 android2.3.5
- Android MID 3G 移植
- 3D引擎--可移植到Android的开源的引擎
- android按键移植
- 基于android的GPS移植调用关系【转】