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

要开始编译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

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


















你可能感兴趣的:(ubuntu14.04交叉编译vlc2.1.5源码,编译出在win32下运行的程序)