美文网首页
Win10用VS编译live555

Win10用VS编译live555

作者: 奥巴荣 | 来源:发表于2019-03-15 10:10 被阅读0次

    本文链接:https://www.jianshu.com/p/5f3c586e9065

    之前发的《Windows7上用VS编译本地使用的live555》有各种问题,而且最近换了硬盘,重装系统,所以重新写一篇。

    1 环境

    系统:Windows 10 专业版 1809

    编辑器:Visual Studio Community 2017

    Live555:2018-08-04

    2 准备工作

    下载源码

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

    备用:
    https://web.archive.org/web/20180814231009/http://www.live555.com/liveMedia/public/

    下载live555-latest.tar.gz

    live555源码

    下载VS

    官方下载

    安装VS

    安装时选上“使用C+ +的桌面开发”。已经安装过VS但是没有C+ +组件的,在开始-程序和功能中找到Visual Studio Community 2017,选择修改,选上“使用C+ +的桌面开发”。

    程序和功能 安装界面 选修改 使用C++的桌面开发

    3 新建项目

    新建live555项目,选择Windows控制台应用程序


    新建项目BasicUsageEnvironment

    设置项目属性为静态库


    静态库

    设置不使用预编译头

    预编译头

    选文件-添加-新建项目,名称groupsock,空项目


    添加新项目groupsock

    这个也要设置项目属性为静态库,用同样的方法新建项目liveMedia、UsageEnvironment。

    添加项目mediaServer,不用设置静态库。

    目录结构

    4 添加代码

    把live555源码解压出来的live目录下的BasicUsageEnvironment、groupsock、liveMedia、mediaServer、UsageEnvironment的源文件和头文件复制到对应工程目录下。

    复制代码

    把c和cpp文件添加进源文件目录,h和hh文件添加进头文件目录

    工程结构

    设置附加包含目录


    附加包含目录

    5 生成

    右键项目目录-生成

    分别生成BasicUsageEnvironment、groupsock、liveMedia、UsageEnvironment。

    可能会出现‘_snprintf’错误,解决此错误的方法是在选择项目->属性->配置属性->C/C++->预处理器->预处理器定义,添加如下信息:_CRT_SECURE_NO_DEPRECATE

    更多报错看第7节。

    6 编译运行

    按F5开始调试

    运行成功

    复制视频文件到mediaServer目录

    复制视频文件

    打开VLC,按Ctrl+N,输入URL

    打开媒体

    开始播放

    播放成功

    结束。

    7 附上一些报错

    生成BasicUsageEnvironment报错:

    错误  C4996   '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. BasicUsageEnvironment   d:\code\vs\live555\basicusageenvironment\basicusageenvironment0.cpp 78  
    

    解:
    选择项目->属性->配置属性->C/C++->预处理器->预处理器定义,添加如下信息:_CRT_SECURE_NO_DEPRECATE

    编译报错:

    错误  C4996   'gethostbyname': Use getaddrinfo() or GetAddrInfoW() instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprecated API warnings   GroupSock   d:\code\vs\live555\groupsock\netaddress.cpp 108 
    

    解:
    Project properties -> Configuration Properties -> C/C++ -> General -> SDL checks -> No

    参考:
    https://jingyan.baidu.com/article/1709ad8097e5904634c4f03e.html

    编译报错:

    错误  C1083   无法打开预编译头文件: “Debug\MediaServer.pch”: No such file or directory  MediaServer d:\code\vs\live555\mediaserver\stdafx.cpp   5   
    

    解:

    Right-click on your project in the Solution Explorer.
    Click Properties at the bottom of the drop-down menu.
    At the top left of the Properties Pages, select All Configurations from the drop-down menu.
    Open the C/C++ tree and select Precompiled Headers
    Precompiled Header: Select Use (/Yu)
    Fill in the Precompiled Header File field. Standard is stdafx.h
    Click Okay
    If you do not have stdafx.h in your Header Files put it there. Edit it to #include all the headers you want precompiled.
    Put a file named stdafx.cpp into your project. Put #include "stdafx.h" at the top of it, and nothing else.
    Right-click on stdafx.cpp in Solution Explorer. Select Properties and All configurations again as in step 4 ...
    ... but this time select Precompiled Header Create (/Yc). This will only bind to the one file stdafx.cpp.
    Put #include "stdafx.h" at the very top of all your source files.
    Lucky 13. Cross your fingers and hit Build.
    

    参考 https://stackoverflow.com/questions/6096384/how-to-fix-pch-file-missing-on-build

    编译报错:

    fatal error C1010: 在查找预编译头时遇到意外的文件结尾
    

    解决方式:

    一.
    1) 在解决方案资源管理器中,右击相应的.cpp文件,点击“属性”
    2) 在左侧配置属性中,点开“C/C++”,单击“预编译头”
    3) 更改右侧第一行的“创建/使用预编译头”,把选项从“使用预编译头(/Yu)”改成“不使用预编译头”
    4) 注:每一个报错的.cpp都要如此更改哦~辛苦一下呗~
    二.
    (不推荐)
    1)在解决方案右击工程,点击属性
    2)在配置属性 -> c/c++ -> 预编译头 中 将 “使用预编译头(/YU)” 改为 “不适用预编译头”
    这种做法会使每次编译过程非常缓慢
    

    参考 http://blog.sina.com.cn/s/blog_58649eb30100th2k.html

    严重性 代码 说明 项目 文件 行 禁止显示状态
    错误 C2665 “_snprintf_s”: 2 个重载中没有一个可以转换所有参数类型 groupsock d:\projects\vs\live555\groupsock\groupsock.cpp 545

    参考

    http://blog.csdn.net/yzhang6_10/article/details/51170151

    http://blog.csdn.net/hjl240/article/details/48159243

    相关文章

      网友评论

          本文标题:Win10用VS编译live555

          本文链接:https://www.haomeiwen.com/subject/fzikmqtx.html