使用vs2017编译live555

本文详细介绍了从官网下载Live555源码并进行编译的过程,包括创建解决方案、添加预处理器定义以解决安全性警告等步骤,并提供了搭建openRTSP工程进行测试的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,从官网上下载最新源码

http://www.live555.com/liveMedia/public/

二,解压缩,然后在live目录下创建空的解决方案,然后新建以下4个静态库项目

BasicUsageEnvironment
liveMedia
groupsock
BasicUsageEnvironment

 然后导入相关源文件(除include下文件)

选中4个项目,右击——>属性——>c/c++——>常规——>附加包含目录:..\UsageEnvironment\include;..\liveMedia\include;..\groupsock\include;..\BasicUsageEnvironment\include;

然后在,属性——>c/c++——>预编译头——>预编译头,选择“不使用预编译头”

(同时选中4个项目,可以统一操作,不用再一个一个项目去修改,也能减少犯错机会)

三,编译

在编译liveMedia是出现 c4996 sprintf安全错误,在vs2012及以前这只是一个警告不是错误,但在vs2017里是一个错误,解决方法:

右键工程名-->属性-->C/C++-->预处理器-->预处理器定义,编辑右边输入框加入:_CRT_SECURE_NO_WARNINGS,确定后再编译,生成成功。

 

在编译groupsock工程时,出现gethostbyname安全性错误,解决方法:
右键工程名-->属性-->C/C++-->预处理器-->预处理器定义,编辑右边输入框加入:_WINSOCK_DEPRECATED_NO_WARNINGS,确定后再编译,生成成功。

四,搭建openRTSP工程进行测试

在解决方案下新建一个空项目,

1,加入 include头文件依赖目录

 

 

2,加入lib库头文件路径:

 

3,加入lib库依赖

 

然后编译就可以成功了!

(说一个自己犯的错误:在编译liveMedia库时忘记把liveMedia目录下的.c文件也添加到工程中,造成后面编译openRTSP时出现如下错误:

liveMedia.lib(RTCP.obj) : error LNK2019: 无法解析的外部符号 _OnExpire,该符号在函数 "private: void __thiscall RTCPIn,

在liveMedia工程引入相关.c文件后重新编生成新的liveMedia.lib库后问题解决

 

参考http://www.cnblogs.com/skyseraph/archive/2012/04/11/2442840.html

转载于:https://www.cnblogs.com/guoliushui/p/8623181.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值