最新代码vlc 2.2.4的win32编译
来源:互联网 发布:qsv视频格式转换器mac 编辑:程序博客网 时间:2024/06/08 08:00
自己由于工作需要编译vlc,但是网上找了很多资料都没有编译成功,下面这个是自己验证过的,供大家参考。
VLC的官方wiki中Win32Compile,提供了三个环境的编译方法,如下网址:https://wiki.videolan.org/Win32Compile/#Obtaining_the_toolchain
1. 官方推荐Linux(Ubuntu)下,使用交叉编译工具MinGW。
2. Windows下使用MSYS+MinGW,此方法并不受官方支持。
3. Windows下使用Cygwin编译,此方法为容易出错的(error-prone)和龟速的(slow),不被推荐。
上面三种方法中,方法2受环境和库版本影响很大,有时同样的步骤同样的库在不同的电脑都会出现不同的错误,编译特别容易出现各种的问题,而且此方法不受官方支持,不建议使用;方法3确实很慢,cygwin的环境配置都好几天没配置好,不建议使用;最靠谱的还是方法1,在linux下交叉编译,下面的编译方法主要是详细描述linux下交叉编译vlc的步骤。
主要参考的网址有:
1. https://wiki.videolan.org/Win32Compile/#Obtaining_the_toolchain
2. http://higoge.github.io/2015/07/17/sm02/index.html
3. http://blog.csdn.net/w839687571/article/details/50709929
一.环境搭建
1. 源码下载:http://download.videolan.org/pub/videolan/vlc/,不要在官方wiki上推荐的 git上下载,git上下载的为更新的版本,不太稳定,目前下载的最新2.2.4版本,http://download.videolan.org/pub/videolan/vlc/2.2.4/vlc-2.2.4.tar.xz
2. 库下载:vlc-contrib-i686-w64-mingw32-latest.tar.bz2
ftp://ftp.videolan.org/pub/videolan/contrib/i686-w64-mingw32/vlc-contrib-i686-w64-mingw32-latest.tar.bz2
注意:用最新版本下载下来的库编出来有错误,参考2网址http://higoge.github.io/2015/07/17/sm02/index.html中的博客下载的库版本是vlc-contrib-i686-w64-mingw32-20150630.tar.bz2,然后将这库文件改名为vlc-contrib-i686-w64-mingw32-latest.tar.bz2
3. Linux系统:为了减少出错的概率,建议用裸机环境(也就是装虚拟机),ubntu 14.04 及以上版本,32位。
二.安装库
打开linux命令窗口,输入如下命令,安装库:
sudo apt-get install -y gcc-mingw-w64-i686g++-mingw-w64-i686 mingw-w64-tools
sudo apt-get install -y lua5.2 libtoolautomake autoconf autopoint make gettext
sudo apt-get install -y qt4-dev-toolsqt5-default
sudo apt-get install -y git subversioncmake cvs wine-dev yasm
sudo apt-get install -y zip p7zip nsisbzip2
安装过程中可能会出现Configuring ttf-mscorefonts-installer的配置页面,按tab后,选择ok或者yes,一路回车即可。
三.执行脚本
将如下内容保存到脚本01.sh,
然后执行脚本:sh 01.sh
#!/bin/sh
# This script enforces statically linkingof libgcc, libstdc++-6, and libpthread,
# without needing to rebuild gcc andmingw-w64 from scratch.
# -static-libgcc -static-libstdc++ flagscan not be used in a libtool build system,
# as libtool removes flags that it doesn'tunderstand.
move() {
[-f $1 ] || return 1
mkdir -p old/
mv -v $* old/
return 0
}
for x in i686 x86_64
do
library_path_list=`$x-w64-mingw32-gcc -v /dev/null 2>&1 | grep^LIBRARY_PATH|cut -d= -f2|sort|uniq`
IFS=':'
for i in $library_path_list
do
cd $i
move libstdc++-6.dll libstdc++.dll.a libgcc_s.a libgcc_s_sjlj-1.dll&& ln -s libgcc_eh.a libgcc_s.a
move libpthread.dll.a libwinpthread.dll.a
move libwinpthread-1.dll
[ -d ../bin ] && cd ../bin && move libwinpthread-1.dll
done
done
exit 0
四.预编译
4.1 解压源码:
tar axf vlc-2.2.4.tar.xz
cd vlc-2.2.4
4.2 准备库
cd contrib.
mkdir win32
cd win32
(然后将步骤一中下载的vlc-contrib-i686-w64-mingw32-latest.tar.bz2库放到win32目录下)
4.3 预编译库
../bootstrap--host=i686-w64-mingw32
make prebuilt
五.编译源码
cd ../../
./bootstrap
exportPKG_CONFIG_LIBDIR=$HOME/vlc-2.2.4/contrib/i686-w64-mingw32/lib/pkgconfig
exportPKG_CONFIG_PATH_CUSTOM=$PKG_CONFIG_LIBDIR
mkdir win32&& cd win32
../extras/package/win32/configure.sh--host=i686-w64-mingw32 --disable-lua --disable-dvdread --disable-goom--disable-dvdread --disable-taglib--disable-x265 --disable-gnutls
编译成功之后会显示版本version等信息。
六.make和打包
6.1 执行命令make或者make –j4 (加速make,4核CPU)
6.2 打包:makepackage-win-common
执行完后,当前目录下会生成vlc-2.2.4目录,即为绿色版VLC
最后将vlc-2.2.4拷贝到windows系统,即可运行vlc,播放音视频
- 最新代码vlc 2.2.4的win32编译
- 关于编译VLC-Android最新代码的正确姿势
- 编译最新版本的vlc
- Ubuntu 下编译 VLC-Win32
- Ubuntu 下编译 VLC-Win32
- 嵌入式 编译win32平台的vlc错误汇总
- 安装最新的vlc
- vlc android 代码编译
- vlc android 代码编译
- vlc-2.2.4 交叉编译 UbuntuX64_1604_Desktop 编译windows版本vlc
- Android VLC的编译
- eclipse没有自动编译最新的代码
- vlc代码的使用
- windows平台下vlc编译之三:vlc-0.9.4的编译
- Ubuntu下交叉编译 win32 vlc-2.1.0-git
- Ubuntu下交叉编译 win32 vlc-2.0.5
- Fedora 17下交叉编译vlc-2.0.6-win32小记
- Win32Compile---ubuntu 12.04下交叉编译win32 vlc
- 设计模式
- “空指针”引用导致“程序异常退出”两例
- Windows デスクトップ WPF アプリの Azure AD への統合
- android混淆
- 190. Reverse Bits\331. Verify Preorder Serialization of a Binary Tree
- 最新代码vlc 2.2.4的win32编译
- jQuery Mobile页面
- hibernate 初级03(一对多,多对一)
- TensorFlow简要教程系列(四)TensorFlow实现Softmax回归
- NDK环境搭建
- Delphi 的目录操作
- vim 复制、剪切、删除
- Python编码格式说明及转码函数encode和decode的使用
- 快速击键项目