锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 流媒体开源技术 / VS平台编译VLC源代码和Windows平台编译VLC源代码
服务方向
软件开发培训
流媒体开发
Java 安卓移动开发
Java Web开发
网站前端开发
VC++
C++游戏开发培训
C#软件
C语言(Linux)
ASP.NET网站开发(C#)
C#软件+ASP.NET网站
SOCKET网络通信开发
COMOLE和ActiveX开发
C++(Linux)
汇编和破解
驱动开发
SkinMagicVC++换肤
MicroStation二次开发
软件开发技术服务
软件开发
办公财务MIS
股票
设备监控
网页信息采集及控制
多媒体
软件开发在线教育
计算机英语翻译
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883

锐英源是流媒体开源项目专家,如果想学锐英源流媒体开发培训,请关注锐英源,此培训有C#部分,适合初中级流媒体爱好者。

vlc编译是学习vlc的第一步,在Windows平台下编译肯定要用VS了,不过不用VS用其它平台也可以编译,我开始也是用cygwin和MinGW进行编译,结果吃到了苦头,遇到了层出不穷的错误,没成功,后来按VS的方式来做,马上有效果了,这里请大家明白这个经验教训!Windows平台这么大的市场,这么重要的事情,VLC的开发者不会忘记,所以一定要把思维扩展开,不要只想着开源就离不开Linux了。
该文档详细记录了如何在64位WINDOWS7环境下使用VS2008和VS2010编译VLC2.1.0源码,按照该文档进行实际编译时,各个文件的版本需与文档中描述的版本一致,否则可能出现错误。

一 准备工作

  1. 下载VLC2.1.0-2008

登录https://github.com/sunqueen?tab=repositories,点击红框中的链接,进入下载页面。
VS2008适用
vlc编译下载2008代码 
点击红框中的ZIP, 下载vlc-2.1.0-2008
vlc编译2008zip 
解压下载的文件
vlc编译解压2008
VS2010适用
vlc编译VS2010

  1. 下载DirectX June2010 SDK

登录http://www.microsoft.com/en-us/download/details.aspx?id=6812
, 点击红框中的链接,下载DirectX June2010 SDK


双击安装,其中用户反馈可以选择NO,其余默认,开发包会自动安装在C:\Program Files\Microsoft DirectX SDK (June 2010)
如果安装失败 提示S1023错误,请卸载高版本的vs distribute文件,就可以安装。具体可以百度此错误

  1. 下载WINSDK7

登录http://www.microsoft.com/en-us/download/details.aspx?id=3138
, 点击红框中的链接,下载SDK7。
下载的是适用于VS2008的链接

vlc编译下载WINSDK
双击安装,默认安装在C:\Program Files\Microsoft SDKs\Windows\v7.0
建议:此处可以选择网络安装和下载后安装,建议先下载上面文件的iso文件解压后直接安装。下载时根据自己处理器的类型选择相应的安装包
VS2010的.NET4下载链接
https://www.microsoft.com/en-us/download/details.aspx?id=8442
下载时可以通过web方式安装,但是速度比较慢,建议下载iso。

二 设置VS2008环境

  1. 设置DirectX June2010 SDK

打开Tools->Options->Projects and Solutions->VC++Directoties,在Include file中加入路径,如图
vlc编译VS2008配置
打开Tools->Options->Projects and Solutions->VC++Directoties,在Library files中加入路径,如图
vlc编译VS2008目录

三 检查VS2010环境

Vlc源代码解压后,根目录会有sln文件,用vs2010可以直接打开,打开后,项目配置里直接有include和lib的配置。如无意外,可以直接编译。

四 编译VLC(编译debug版本)

  1. 编译VLCWIN,LIBVLC,LIBVLCCORE

选择vlcwin,右键单击,选择rebuild,VS会先编译libclv和libccore,再编译vlcwin(右键Project Dependencies中可以看到vlcwin依赖libclv和libccore)
vlc编译vlcwin解决方案
编译完成后再debug 目录下可以看到编译后的DLL和EXE

vlc编译结果 

  1. 编译Lib_plugin

选择lib_plugin,右键单击,选择set as Startup Project, 然后rebuild。
如果出现LINK : fatal error LNK1181: cannot open input file 'strmbasd.lib',说明找不到strmbasd.lib ,请从网上下载该文件,然后拷贝到debug文件夹中。

重新选择lib_plugin,右键单击,选择rebuild,编译完成后再debug\plugins目录下可以看到编译后的DLL
vlc编译plugin

  1. 编译libcompat

选择libcompat,右键单击,选择set as Startup Project, 然后rebuild。编译完成后再debug目录下可以看到编译后的DLL
vlc编译compat

四 运行VLC

双击debug目录下的vlc.exe,通过帮助查看版本,如下图:

vlc编译运行

五 增加鼠标消息

当VLC在播放的时候,无法响应鼠标消息,修改的方法如下:

打开modules\video_output\msw\event.hh

在EventThread函数的 WM_LBUTTONDOWN, WM_LBUTTONDBLCLK和WM_RBUTTONDOWN的break前增加

{
POINT pt;
pt.x = GET_X_LPARAM(msg.lParam);
pt.y = GET_Y_LPARAM(msg.lParam);
ClientToScreen(msg.hwnd,&pt);
ScreenToClient(vd->sys->hparent,&pt);
PostMessage(vd->sys->hparent,WM_LBUTTONDOWN,msg.wParam,MAKELPARAM(pt.x,pt.y));

}

另外增加
case WM_RBUTTONDBLCLK:
vout_display_SendEventMouseDoubleClick(vd);
{
POINT pt;
pt.x = GET_X_LPARAM(msg.lParam);
pt.y = GET_Y_LPARAM(msg.lParam);
ClientToScreen(msg.hwnd,&pt);
ScreenToClient(vd->sys->hparent,&pt);
PostMessage(vd->sys->hparent,WM_RBUTTONDBLCLK,msg.wParam,MAKELPARAM(pt.x,pt.y));
}

break;

VS2010中包含以前的.h/.cpp文件于现在的工程中,出现IntelliSense: 无法打开 源 文件 "stdafx.h",搜寻到一些方法都不适用,比如:设置项目属性->配置属性->C/C++->预编译头->使用 (/Yu)/创建 (/Yc)/不使用预编译头三种方式都不行。虽然提示这样的错误,但是运行程序是成功的,初始化和编译运行好像使用不同的查找路径,在低版本的VS2005/VS2008开发而在高版本VS2010中打开时会遇到这样的问题。其解决办法是:
项目属性->配置属性->C/C++->常规->附加包含目录->$(ProjectDir)
编译过程中的问题:
一 error LNK2026: 模块对于 SAFESEH 映像是不安全的。
解决方法:
1.打开该项目的“属性页”对话框。
2.单击“链接器”文件夹。
3.单击“命令行”属性页。
4.将 /SAFESEH:NO 键入“附加选项”框中,然后点击应用。

二、在调试的时候vlcwin.cpp里死机 ,最后注释掉vlc_exception_filter
相关的东西才能执行

参考:VLC文档:http://www.videolan.org/developers/vlc/doc/doxygen/html/index.html

友情链接
版权所有 Copyright(c)2004-2015 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州市文化路47号院1号楼4层(47-1楼位于文化路和红专路十字路口东北角,郑州大学工学院招待所南边,工学院科技报告厅西边。)