win7下编译VLC

说明:该文档详细记录了如何在32位WIN7(64位WIN7同样适用)环境下使用VS2010编译VLC1.1.5源码,按照该文档进行实际编译时,各个文件的版本需与文档中描述的版本一致,否则可能出现错误。

文末及文中附有供参考的相关链接,在此一并对其作者表示感谢。

 

一、准备工作

1.1下载VS工程的vlc-1.1.5-2010源码

https://github.com/sunqueen?tab=repositories

点击vlc-1.1.5-2010链接,进入下载页面


点击红框中的Download ZIP,下载vlc-1.1.5-2010


解压下载的文件,得到vlcwin.15.vs2010.NT.up.zip,再解压一次,得到源码文件夹,如下图所示



 

1.2下载DirectX June2010 SDK,并安装

http://www.microsoft.com/en-us/download/details.aspx?id=6812

点击红框中的链接,下载DirectX June2010 SDK;


 

双击安装,其中用户反馈可以选择NO,其余默认。

开发包会自动安装在C:\Program Files\Microsoft DirectXSDK (June 2010)

(注:如果碰到安装失败,且Errorcode:S1023,请参考以下链接和内容)

http://blog.csdn.net/ts1030746080/article/details/8681550

错误原因

计算机上有安装过更新版的Microsoft Visual C++ 2010Redistributable,打开“控制面板”的“程序和功能”,果然计算机里之前有安装“Microsoft Visual C++ 2010 x86 Redistributable - 1010.0.40219”,而DXSDK_Jun安装的是“Microsoft VisualC++ 2010 x86 Redistributable - 1010.0.30319”,版本低于本机已安装的版本,所以安装出现S1023错误。

解决办法

卸载更高的版本“Microsoft Visual C++ 2010x86 Redistributable - 1010.0.40219”,再重新安装即可。卸载“Microsoft Visual C++ 2010x86 Redistributable - 1010.0.40219”影响不大。如果实在需要“Microsoft Visual C++ 2010x86 Redistributable - 1010.0.40219”,可在安装完DXSDK_Jun10之后再安装。下载页面地址(http://www.microsoft.com/en-us/download/details.aspx?id=26999 )

1.3下载Windows SDK7

http://www.microsoft.com/en-us/download/details.aspx?id=3138

点击红框中的链接,下载SDK7


 

双击安装(注:可能下载的是在线安装包,也可以下载ISO格式文件,解压或虚拟光驱装载安装)

默认安装在C:\ProgramFiles\Microsoft SDKs\Windows\v7.1 

1.4准备DirectShow的库文件编译BaseClasses项目

打开如下的工程,任由转换向导转换。

C:\ProgramFiles\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\下的

baseclasses.sln

项目BaseClasses转换会发生若干警告,无视。

分别在Debug/Release模式下编译,确认以下库文件生成:

C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug\strmbasd.lib

C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Release\strmbase.lib

二、设置VS环境

 

2.1设置DirectX June2010 SDK

VS2010貌似不能按照如下方法:

设置Include:Tools(工具)->Options(选项)->Projects and Solutions(项目和解决方案)->VC++Directoties(VC++目录),在Include file(包含目录)中加入路径

设置Lib:Tools(工具)->Options(选项)->Projects and Solutions(项目和解决方案)->VC++Directoties(VC++目录),在Library files(库目录)中加入路径

可以按照下面的方法设置:

打开刚刚下载解压好的vlcwin.sln解决方案,打开“属性管理器”页面,如图


展开其中任意一个工程,图中以“libplugin”为例,展开”Debug|Win32”,双击Microsoft.Cpp.Win32.user,进行项目配置(注:这里修改的实际上是全局的配置),如下图所示:


 

在“包含目录”中添加如下路径,注意顺序,可能会影响编译,也可能某个路径不需要

(为防止出错,可单击该行,点右边的下拉三角,选择“编辑”,逐条添加即可):

C:\Program Files\Microsoft DirectX SDK (June 2010)\Include;

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;

C:\Program Files\Microsoft SDKs\Windows\v7.1\Include\gl;

C:\Program Files\Microsoft SDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses;

C:\Program Files\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\common;

在“库目录”中添加如下路径

C:\ProgramFiles\Microsoft DirectX SDK (June 2010)\Lib\x86;

C:\ProgramFiles\Microsoft SDKs\Windows\v7.1\Lib;

C:\ProgramFiles\MicrosoftSDKs\Windows\v7.1\Samples\multimedia\directshow\baseclasses\Debug;

[Release编译需要将上一目录最后的Debug改为Release]

 

三、编译VLC(编译Debug版本)

 

3.1编译vlcwin, libvlc, libvlccore,libcompat

解决方案资源管理器中,默认的启动项应该是vlcwin,若不是,则右键将其设置为启动项,如下图

 

选择vlcwin,单击右键,选择Rebuild(重新生成),VS会先编译libcompat,再编译libccore和libclv, 最后编译vlcwin。

(右键ProjectDependencies(项目依赖项)中可以看到vlcwin依赖libclv和libccore,而libvlccore依赖于libcompat)

编译完成后在debug 目录下可以看到编译后的libvlc.dll, libvlccore.dll和vlcwin.exe等文件。

 

3.2编译libplugin

解决方案资源管理器中,选择libplugin,单击右键,选择“属性”,弹开如下图页面:

 

如图设置,将字符集改为”未设置”

(注:默认的字符集是”Unicode”,我直接编译,出现Error:不能识别的xxxx等错误。将字符集改为”未设置”后,编译通过,原因暂不明)

选择libplugin,单击右键,选择“仅用于项目”->“仅生成libplugin”;

编译完成后再debug\plugins目录下可以看到编译后的libplugin.dll,比较大,约30M左右。

四、运行vlc

双击debug目录下的vlcwin.exe,主界面如下图:

 

帮助->关于,如下图


至此,Debug版本下vlc-1.1.5编译完成。

后记:如在编译过程中遇到本文未曾提到的问题,请自行百度或google解决。根据经验来看,大抵都是环境配置不对所引起的。如果顺利的话,恭喜!

参考链接:

http://blog.sina.com.cn/s/blog_b7770ea80101ge5j.html

https://forum.videolan.org/viewtopic.php?p=287019

https://forum.videolan.org/viewtopic.php?f=32&t=81793
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值