搜档网
当前位置:搜档网 › VS编译VLC方法

VS编译VLC方法

VS编译VLC方法
VS编译VLC方法

VS工程的VLC源码网址:https://https://www.sodocs.net/doc/bf5783094.html,/sunqueen?tab=repositories

VLC文档:

https://www.sodocs.net/doc/bf5783094.html,/developers/vlc/doc/doxygen/html/index.html

该文档详细记录了如何在32位WINDOWS7环境下使用VS2008编译VLC2.1.0源码,按照该文档进行实际编译时,各个文件的版本需与文档中描述的版本一致,否则可能出现错误

一准备工作

1.下载VS

2.1.0-2008

登录https://https://www.sodocs.net/doc/bf5783094.html,/sunqueen?tab=repositories,点击红框中的链接,进入下载页面

点击红框中的ZIP, 下载vlc-2.1.0-2008

解压下载的文件

2.下载DirectX June2010 SDK

登录https://www.sodocs.net/doc/bf5783094.html,/en-us/download/details.aspx?id=6812

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

双击安装,其中用户反馈可以选择NO,其余默认,开发包会自动安装在C:\Program Files\Microsoft DirectX SDK (June 2010)

3.下载WINSDK7

登录https://www.sodocs.net/doc/bf5783094.html,/en-us/download/details.aspx?id=3138

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

错误记录:

1.VS2010中包含以前的.h/.cpp文件于现在的工程中,出现IntelliSense: 无法打开源文件 "stdafx.h",搜寻到一些方法都不适用,比如:设置项目属性->配置属性->C/C++->预编译头->使用 (/Yu)/创建 (/Yc)/不使用预编译头三种方式都不行。虽然提示这样的错误,但是运行程序是成功的,初始化和编译运行好像使用不同的查找路径,在低版本的VS2005/VS2008开发而在高版本

VS2010中打开时会遇到这样的问题。其解决办法:

项目属性->配置属性->C/C++->常规->附加包含目录->$(ProjectDir)

双击安装,默认安装在C:\Program Files\Microsoft SDKs\Windows\v7.0

二设置VS环境

1.设置DirectX June2010 SDK

打开Tools->Options->Projects and Solutions->VC++Directoties,在Include file中加入路径,如图

打开Tools->Options->Projects and Solutions->VC++Directoties,在Library files 中加入路径,如图

三编译VLC(编译debug版本)

1.编译VLCWIN,LIBVLC,LIBVLCCORE

选择vlcwin,右键单击,选择rebuild,VS会先编译libclv和libccore,再编译vlcwin(右键Project Dependencies中可以看到vlcwin依赖libclv和libccore)

编译完成后再debug 目录下可以看到编译后的DLL和EXE

2.编译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

3.编译libcompat

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

四运行VLC

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

五增加鼠标消息

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

1.打开modules\video_output\msw\event.hh

2.在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)

相关主题