热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ubuntu14.04交叉编译vlc2.1.5源码,编译出在win32下运行的程序

要开始编译vlc,首先就是到官网去查找资料,为了满足需求,编译出来在win32下运行,我要修改vlc的plugins下的dll代码wiki.videolan.orgWin32Compile1.下载官网下载源码get.videolan.orgvlc2.1.5vlc-2.1.5.tar.xz2.准备环境:我的是ubuntu

要开始编译vlc,首先就是到官网去查找资料,为了满足需求,编译出来在win32下运行,我要修改vlc的plugins下的dll代码 https://wiki.videolan.org/Win32Compile/ 1.下载官网下载源码 http://get.videolan.org/vlc/2.1.5/vlc-2.1.5.tar.xz 2.准备环境:我的是ubuntu

要开始编译vlc,首先就是到官网去查找资料,为了满足需求,编译出来在win32下运行,我要修改vlc的plugins下的dll代码

https://wiki.videolan.org/Win32Compile/

1.下载官网下载源码

http://get.videolan.org/vlc/2.1.5/vlc-2.1.5.tar.xz

2.准备环境:我的是ubuntu14.04系统.由于Ubuntu系统有在线安装,因此交叉编译中大部分的第三方工具可以通过系统自动安装,较为方便。

vlc2.1.5


3. 编译环境的搭建

1>>ubuntu12.04之前的版本无法在线安装完整的编译环境,所以要跟新系统到12.04以上

2>>更新系统.以下所有的操作尽在root下执行

apt-get update

3>>安装gcc/g++及MinGW

apt-get install gcc

apt-get install g++

首先,卸载系统原有支持MinGW(64位兼容)的gcc/g++编译环境:(安装过mingw-w64-dev 2.0版的系统环境需要执行卸载操作)

apt-get purge gcc-mingw-w64-i686

apt-get purge g++-mingw-w64-i686

apt-get purge gfortran-mingw-w64-i686

apt-get purge mingw-w64

apt-get purge mingw-w64-tools

apt-get autoremove binutils-mingw-w64-i686(系统自动安装的软件包,不再需要)

apt-get autoremove g++ gcc-mingw-w64-base(系统自动安装的软件包,不再需要)

apt-get autoremove libstdc++6-4.6-dev(系统自动安装的软件包,不再需要)

dpkg-r -P mingw-w64-i686-dev_2.0.*_all.deb(可能的旧版本,一般为2.0.3_1)

然后,到http://ftp.jp.debian.org/debian/pool/main/m/mingw-w64/下载需用的软件包,本文使用的是:

mingw-w64-common_3.0.0-3_all.deb

mingw-w64-i686-dev_3.0.0-3_all.deb

下载后安装 mingw-w64-i686 软件包:

dpkg-i mingw-w64-common_3.0.0-3_all.deb

dpkg-i mingw-w64-i686-dev_3.0.0-3_all.deb

最后,重装MinGW的gcc/g++支持:

apt-get install gcc-mingw-w64-i686

apt-get install g++-mingw-w64-i686

apt-get install gfortran-mingw-w64-i686

apt-get install mingw-w64-tools

4>>安装其他工具和插件(部分工具可能不需要安装)

apt-get install subversion (编译contrib使用)

apt-get install yasm (编译contrib使用)

apt-get install cmake (编译contrib使用)

apt-get install cvs (编译contrib使用)

apt-get install git

apt-get install lua5.1

apt-get install libtool

apt-get install automake

apt-get install autoconf

apt-get install autopoint

apt-getinstall gettext

apt-get install pkg-config

apt-get install make

apt-get install qt4-dev-tools (如将另行编译Qt4,则无需安装, 因为vlc2.1.5使用的Qt4的库所以安装qt4-dev-tools/否则其他版本可能要安装qt5的工具)

apt-get install zip

apt-get install p7zip

apt-get install p7zip-full

apt-get install nsis

apt-get install bzip2

apt-get install build-essential


截止到以上就是安装完交叉编译环境,一定要把所有的安装好,要不在最后出现莫名其妙的问题,也是很头疼的,尤其不要qt4和qt5同时安装,如果你知道怎么设置vlc.2.1.5的qt环境变量,估计这句话是多余的.

4. 接下来把下载的源码解压.可以加压到/home下.

5.之后就是下载第三方库,因为vlc编译的时候是需要一些库支持的,如同我们自己的项目也需要一些其他人开发的库开支持某些功能.

下载地方库路径http://download.videolan.org/pub/videolan/contrib/i686-w64-mingw32/版本就选择vlc-contrib-i686-w64-mingw32-20140506.tar.bz2

6.复制第三方库到vlc-2.1.5路径下的/contrib/win32. 并将

vlc-contrib-i686-w64-mingw32-latest.tar.bz2,相关操作为:

mkdir -p contrib/win32
cd contrib/win32

cp vlc-contrib-i686-w64-mingw32-20131111.tar.bz2 ./

mv vlc-contrib-i686-w64-mingw32-20131111.tar.bz2 vlc-contrib-i686-w64-mingw32-latest.tar.bz2


../bootstrap --host=i686-w64-mingw32

make prebuilt

执行完成后在contrib/路径下生成i686-w64-mingw32 文件夹

rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic ../i686-w64-mingw32/bin/rcc

7.编译源码

返回vlc-2.1.5 根目录并进行配置,创建win32目录

cd ../../
mkdir win32 && cd win32

./bootstrap

export PKG_CONFIG_LIBDIR=$HOME/vlc-2.1.5/contrib/i686-w64-mingw32/lib/pkgconfig #//这个环境变量会按照你的配置的路径而不同,要看清楚pkgconfig这个路径就好

../extras/package/win32/configure.sh --host=i686-w64-mingw32

make

8. 最后一步就是打包, _win32里面的就是我们所用的dll

make package-win32-zip

9.make package-win32-zip 失败,_win32里面的dll,可以用来二次开发,你会发现很大,对啊,因为你还没有对它进行压缩。

在执行make package-win32-zip时我的是失败的,因为访问不了谷歌的网站

报错是svn访问这个网站出错 http://npapi-sdk.googlecode.com/svn/trunk/headers

肿么办----------------------------------------------------------------------------------------------------------------------------------------------------


















推荐阅读
author-avatar
天勤-科技
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有