热门标签 | 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

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


















推荐阅读
  • 本文分享了作者在不同版本的Ubuntu系统上尝试编译VLC for Android的经历,包括遇到的技术难题及解决方案,旨在帮助开发者避免常见的编译问题。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 本文探讨了如何将个人经历,特别是非传统的职业路径,转化为职业生涯中的优势。通过作者的亲身经历,展示了舞蹈生涯对商业思维的影响。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 本文详细介绍了如何正确设置Shadowsocks公共代理,包括调整超时设置、检查系统限制、防止滥用及遵守DMCA法规等关键步骤。 ... [详细]
  • 理解浏览器历史记录(2)hashchange、pushState
    阅读目录1.hashchange2.pushState本文也是一篇基础文章。继上文之后,本打算去研究pushState,偶然在一些信息中发现了锚点变 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • 深入解析WebP图片格式及其应用
    随着互联网技术的发展,无论是PC端还是移动端,图片数据流量占据了很大比重。尤其在高分辨率屏幕普及的背景下,如何在保证图片质量的同时减少文件大小,成为了亟待解决的问题。本文将详细介绍Google推出的WebP图片格式,探讨其在实际项目中的应用及优化策略。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • 本文介绍了如何在不同操作系统上安装Git,以及一些基本和高级的Git操作,包括项目初始化、文件状态检查、版本控制、分支管理、标签处理、版本回退等,并简要提及了开源许可协议的选择。 ... [详细]
  • 在Ubuntu 18.04上使用Nginx搭建RTMP流媒体服务器
    本文详细介绍了如何在Ubuntu 18.04上使用Nginx和nginx-rtmp-module模块搭建RTMP流媒体服务器,包括环境搭建、配置文件修改和推流拉流操作。适用于需要搭建流媒体服务器的技术人员。 ... [详细]
  • Ubuntu 22.04 安装搜狗输入法详细指南及常见问题解决方案
    本文将详细介绍如何在 Ubuntu 22.04 上安装搜狗输入法,并提供常见问题的解决方法。包括下载安装包、更新源、安装依赖项等步骤。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • Dense Matrix Inversion Results in Segmentation Fault: Causes and Solutions ... [详细]
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社区 版权所有