如何编译Media-S

author: A.TNG <jiyucn@163.com>

关于Media-S,之前的文章有描述。代码好几年没有更新了,但是由于代码量小,流程简单,相关文档还算完善,本着学习的目的,决定先编译通过,试着运行一下。

目标平台: Redhat  9
   gcc  3.2.2
其实选择平台的时候,考虑到Media-S的最近更新时间是2003年,并且Redhat 9也是同年发布的,为了方便编译,选择了以上版本。

编译工作:
1. 检查 /usr/include 目录下。因为Media-S需要pthread,expat,CURL,OpenSSL,Ogg和Vorbis的支持,首选需要检查对应目录下存在相关的头文件:
/usr/include/pthread.h
/usr/include/expat.h
检查对应目录下存在相关的文件夹,并且文件夹中包含相关头文件:
/usr/include/openssl/
/usr/include/curl/
/usr/include/ogg/
/usr/include/vorbis/

2. 除了以上头文件,Media-S还使用了Kerberos库中的krb5.h,找到该头文件所在的目录,通常是在/usr/kerberos/include/目录下,分别打开oggsen/Makefile和oggs123/Makefile,在各个文件的CFLAGS后加上 -I/usr/kerberos/include。目的就是让编译器上对应的目录找krb5.h。

3. 打开oggs123/Makefile,将
static: $(LIBOBJS)
 ar rcs libmediasdecrypt.a libmediasdecrypt/mediasdecrypt.o ../common/common.o libmediasdecrypt/decryptcommon.o
改成
static: $(LIBOBJS)
 ar rcs libmediasdecrypt.a libmediasdecrypt/mediasdecrypt.o ../common/common.o libmediasdecrypt/decryptcommon.o /
 libmediasdecrypt/licensevault.o /
 libmediasdecrypt/streamrequest.o /
 libmediasdecrypt/licenseserver.o /
 ../common/simpledb.o

4. 打开/common/common.c和/common/common.h,整个源代码中,竟然只有函数freeCommentList的声明,没有定义,仅为了编译通过的话,直接在空白处加上
int freeCommentList(CommentData * oComment)
{
 return 0;
}
猜测该函数是用来释放链表的空间,因此如上定义函数的话,一定会有内存泄漏的。

5. 修改工作完成以后就可以开始编译了,因为有一些依赖关系,因此在编译的时候尽量不要打乱顺序。
 1) 进入oggs123,make shared
 2) 在oggs123中,make static
 3) 在oggs123中,make license
 4) 在oggs123中,make。以上步骤成功以后,create-license和oggs123都已经生成,同时生成了静态库libmediasdecrypt.a和动态库libmediasdecrypt.so.1.0.1。
 5) 进入oggsenc,make。成功后,oggsenc就生成了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值