参考blog:
[1] http://wangheng.org/install-darwin-streaming-server-6-0-3-on-linux.html
[2] http://blog.csdn.net/heartlesstoanyone/article/details/14050991
1、获得软件
从http://dss.macosforge.org/官网下载Darwin Streaming Server,或其他方式获得。
本文使用的版本是DarwinStreamingSrvr6.0.3-Source.tar
2、安装
(1)参考blog[1],解压软件包后执行./Buildit,报错,如下提示:
出现很多类型错误,上图为截取的错误片段。
需要修改源码,按照参考blog[1],下载Darwin流媒体服务器的patch补丁包,地址:http://www.abrahamsson.com/dss-6.0.3.patch
或到此处下载:http://download.csdn.net/detail/zhangjs0322/7034217
(2)patch补丁
将补丁放到源码目录下,并执行patch -p1 < dss-6.0.3.patch
(3)再次执行./Buildit,生成libCommonUtilitiesLib.a库时,出现找不到dlopen、dlclose、dlsym错误,如下:
参考blog[2],修改DarwinStreamingSrvr6.0.3-Source目录下的Makefile.POSIX,在LIBS后添加-ldl,或者再添加一行LIBS+= -ldl,本文是直接添加在尾部。如下图:
(4)再次执行./Buildit
错误如下:
Building QTFileInfo for Linux.i686 with gcc
gcc -o QTFileInfo QTFileInfo.o ../../RTPMetaInfoLib/RTPMetaInfoPacket.o -D_REENTRANT -D__USE_POSIX -D__linux__ -pipe -L../../CommonUtilitiesLib -L../../QTFileLib -lpthread -ldl -lstdc++ -lm -lcrypt -lCommonUtilitiesLib -lQTFileExternalLib ../../CommonUtilitiesLib/libCommonUtilitiesLib.a
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSFileSource.o): In function `memset':
/usr/include/i386-linux-gnu/bits/string3.h:82: warning: memset used with constant zero length parameter; this could be due to transposed parameters
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `MutexAttrInit':
/home/zhangjianshun/soft/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:78: undefined reference to `pthread_mutexattr_init'
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex':
/home/zhangjianshun/soft/DarwinStreamingSrvr6.0.3-Source/CommonUtilitiesLib/OSMutex.cpp:63: undefined reference to `pthread_once'
../../CommonUtilitiesLib/libCommonUtilitiesLib.a(OSMutex.o): In function `OSMutex::RecursiveTryLock()':
/