Chinaunix首页 | 论坛 | 博客
  • 博客访问: 275054
  • 博文数量: 21
  • 博客积分: 510
  • 博客等级: 下士
  • 技术积分: 545
  • 用 户 组: 普通用户
  • 注册时间: 2011-09-05 12:32
文章分类
文章存档

2013年(3)

2012年(13)

2011年(5)

分类: LINUX

2012-08-11 21:18:40

一开始使用cygwin编译VLC2.0.0,解决完一堆的问题之后,出现"Undefine refrence to _Unwind_Sjlj_Resume_" ,看起来是mingw编译器的问题,各种方法都试过了,还是没法继续编译。于是使用另一种方法,linux环境下用交叉编译工具mingw进行编译,终于了生成可运行的VLC。这种方法需要联网获取一些新的第三方库和工具。
编译前准备,虚拟机,Ubuntu 10.04
安装交叉编译工具链
apt-get install gcc-mingw32 mingw32-binutils
安装一些必要的工具
apt-get install lua5.1
apt-get install libtool automake autoconf autopoint make gettext
apt-get install pkg-config
apt-get install git
apt-get install subversion
apt-get install cmake cvs       <=用于编译第三方库,对于直接下载编译好的可以不用
apt-get install zip p7zip nsis bzip2 <=用于打包,nsis可以生成自动安装的包
获取最新的VLC源码,vlc-2.0.4
git clone git://git.videolan.org/vlc.git vlc
cd vlc
 安装第三方库
mkdir -p contrib/win32
cd contrib/win32
../boostrap --host=i586-mingw32msvc
make prebuilt    <=自动下载已经编译好的第三方库并安装
回去VLC目录运行bootstrap
cd ../../
./boostrap
创建一个输出目录
mkdir win32
cd win32
运行configure配置脚本 ,可以使用--disable-**去掉不想要的功能
../configure --host=i586-mingw32msvc
make

编译的时候出现错误
dialogs/preferences.hpp:72:19: error: expected unqualified-id before 'char'
dialogs/preferences.hpp:72:18: error: expected ';' at end of member declaration
dialogs/preferences.hpp:72:24: error: expected unqualified-id before ',' token

locate vlc_windows_interfaces.h
找到vlc_windows_interfaces.h
 37 行#include 后加一行
 #undef small
即可编译通过。

最后打包
make package-win32-strip
make package-win32

通过!可以用这个编译activex控件了!使用activex控件的时候可以精简一下plugins dll。




阅读(7350) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~