一、前言
研究VLC源码已有一段时间,一直未形成经验文档,借csdn博客,记录学习的过程及总结的经验,抛砖引玉,期望能给同仁一点帮助。
二、准备工作
VS下编译的VLC源码目录:https://github.com/sunqueen/vlc-2.2.1.32-2013
这个是sunqueen大神参考VLC源码经过修改后的适合VS编译器的源码,我于2016年3月中旬将该源码与VLC官网源码对比后,发现基本逻辑保持一致,仅修改了一些编译不过的地方。修改点主要涉及到以下几个部分
1、VS下不支持动态申请数组大小,申请的数组变量需在编译前即指定大小等等问题。其它源码
2、使用GetSystemTime、SystemTimeToFileTime等windows方法代替gettimeofday函数
src\misc\mtime.c中sunqueen使用GetSystemTime、SystemTimeToFileTime代替gettimeofday函数获取秒和纳秒的原因是?
src\video_output\snapshot.c使用 ftime代替gettimeofday
三、编译所需软件
1、安装Visual Studio 2013
2、如果缺少windows的SDK开发包,需下载一个。我使用的是windows7 32位旗舰版,下载了Windows Software Development Kit for Windows 8.1
下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=8279
四、编译遇到的问题
1、源码下载后编译不过,报一堆错误。检查电脑是否安装了windows sdk开发包。(起初做了各种折腾,设置环境变量、修改工程配置等等虽然能编译通过,但不是正道)
2、遇到一位同行在编译VLC的时候报一堆错误。在安装了windows sdk开发包后依然无法编译,后定位原因是:需要升级Visual Studio 2013到update4以上。此处可以参考github官网上注明了“vlc-2.2.1 compile with VS2013 update 4”