zoukankan      html  css  js  c++  java
  • 使用vs2017编译live555

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

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

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

    BasicUsageEnvironment
    liveMedia
    groupsock
    BasicUsageEnvironment

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

    选中4个项目,右击——>属性——>c/c++——>常规——>附加包含目录:..UsageEnvironmentinclude;..liveMediainclude;..groupsockinclude;..BasicUsageEnvironmentinclude;

    然后在,属性——>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

  • 相关阅读:
    Medium | LeetCode 142. 环形链表 II
    Easy | LeetCode 141. 环形链表
    Hard | LeetCode 23. 合并K个升序链表 | 分治 | 优先队列
    std(19)内置算法find find_if
    stl(18)内置算法for_each transform
    C++引用和指针比较 指针常量和常量指针
    #pragma once和#ifndef用法
    c++变量的一些注意点 extern关键字的使用
    比特 字节 地址 类型 编码 32位 64位
    stl(16)stl内置的一些函数对象
  • 原文地址:https://www.cnblogs.com/guoliushui/p/8623181.html
Copyright © 2011-2022 走看看