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