cygwin 编译 android vlc,VS平台编译VLC源代码_Windows平台编译VLC源代码

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

vlc编译是学习vlc的第一步,在Windows平台下编译肯定要用VS了,不过不用VS用其它平台也可以编译,我开始也是用cygwin和MinGW进行编译,结果吃到了苦头,遇到了层出不穷的错误,没成功,后来按VS的方式来做,马上有效果了,这里请大家明白这个经验教训!Windows平台这么大的市场,这么重要的事情,VLC的开发者不会忘记,所以一定要把思维扩展开,不要只想着开源就离不开Linux了。

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

一 准备工作

下载VLC2.1.0-2008

登录https://github.com/sunqueen?tab=repositories,点击红框中的链接,进入下载页面。

VS2008适用

f56a5fef57285602066b445d2e11ada6.png 

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

4204d1e364fcdaf2a31bf7140fbbe6e2.png 

解压下载的文件

755aff1e4b2159410033500c23a31d8f.png

VS2010适用

a4bab82a2df7ca7477e99269c885fcb8.png

下载DirectX June2010 SDK

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

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

7ea15e1973130904449bc59d13c9c481.png

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

如果安装失败 提示S1023错误,请卸载高版本的vs distribute文件,就可以安装。具体可以百度此错误

下载WINSDK7

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

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

下载的是适用于VS2008的链接

5daef936488e8e540ec945a2a0e9ace2.png

双击安装,默认安装在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环境

设置DirectX June2010 SDK

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

2b43182961eded69bb5e8f251138b41a.png

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

3c5283ec444ca1278b30f43ad45e0f60.png

三 检查VS2010环境

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

四 编译VLC(编译debug版本)

编译VLCWIN,LIBVLC,LIBVLCCORE

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

f38b083c013ff9414f2a3f7ab2bcb96f.png

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

81fa9faa542c19bff9a9d9179e2b5731.png

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

1a7301b0d77195172b3ad5eb21f753d8.png

编译libcompat

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

eee1e50958132d4b9b720e0127aeb4f6.png

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

8c93c02a6911710a3d5f018d9f27a971.png

五 增加鼠标消息

当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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值