Heim > Datenbank > MySQL-Tutorial > ubuntu14.04交叉编译vlc2.1.5源码,编译出在win32下运行的程序

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:01:14
Original
1625 Leute haben es durchsucht

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

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


















Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage