博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
流媒体02:Linux交叉编译VLC-2.2.1
阅读量:6453 次
发布时间:2019-06-23

本文共 2438 字,大约阅读时间需要 8 分钟。

上一篇使用了Cygwin编译了VLC-2.2.1,编译过程正如官网所述,异常的慢。本篇介绍官网推荐的方法,使用Linux交叉编译VLC-2.2.1。

环境搭建

参考:。

源码:。
库: 。
Linux:
本打算使用LinuxMint17.2,但这个发行版是基于Ubuntu14.04,安装mingw-tools的版本为3.1.0,会致使x265、taglib、gnutls等module编译不过,Ubuntu15.04默认安装的mingw-tools版本为3.2.0,编译时不会出问题。

安装库

本章内容需保证Ubuntu能正常联网

1 2 3 4 5
$ sudo apt-get install -y gcc-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64-tools $ sudo apt-get install -y lua5.2 libtool automake autoconf autopoint make gettext $ sudo apt-get install -y qt4-dev-tools qt5-default $ sudo apt-get install -y git subversion cmake cvs wine-dev yasm $ sudo apt-get install -y zip p7zip nsis bzip2

安装过程中可能会出现Configuring ttf-mscorefonts-installer的配置页面,按tab后,一路回车即可。

执行脚本

保存如下内容到脚本01.sh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
#!/bin/sh # This script enforces statically linking of libgcc, libstdc++-6, and libpthread, # without needing to rebuild gcc and mingw-w64 from scratch. # -static-libgcc -static-libstdc++ flags can not be used in a libtool build system, # as libtool removes flags that it doesn't understand. move() {
[ -f $1 ] || return 1 mkdir -p old/ mv -v $* old/ return 0 } for x in i686 x86_64 do library_path_list=`$x-w64-mingw32-gcc -v /dev/null 2>&1 | grep ^LIBRARY_PATH|cut -d= -f2|sort|uniq` IFS=':' for i in $library_path_list do cd $i move libstdc++-6.dll libstdc++.dll.a libgcc_s.a libgcc_s_sjlj-1.dll && ln -s libgcc_eh.a libgcc_s.a move libpthread.dll.a libwinpthread.dll.a move libwinpthread-1.dll [ -d ../bin ] && cd ../bin && move libwinpthread-1.dll done done exit 0

执行命令,将部分dll库移走备份。

1
$ sh 01.sh

解压源码

执行如下命令。

1 2
$ tar xJvf vlc-2.2.1.tar.xz $ cd vlc-2.2.1/

准备库

执行如下命令。

1 2
$ cd contrib/ $ mkdir win32; cd win32

1
$ mv ~/vlc-contrib-i686-w64-mingw32-20150630.tar.bz2 vlc-contrib-i686-w64-mingw32-latest.tar.bz2

编译库。

1 2
$ ../bootstrap --build=i686-w64-mingw32 $ make prebuilt

返回VLC源码根目录。

1
$ cd ../../

编译源码

首先bootstrap。

1
$ ./bootstrap

手动指定pkg_config路径。

1
$ export PKG_CONFIG_LIBDIR=$HOME/vlc-2.2.1/contrib/i686-w64-mingw32/lib/pkgconfig

再执行如下命令。

1 2
$ mkdir win32; cd win32 $ ../extras/package/win32/configure.sh --host=i686-w64-mingw32

根据CPU内核个数,执行make命令。

1
make -j4 # 4核CPU

编译速度很快,一会儿就完成了。

打包

执行如下命令。

1
$ make package-win-common

执行完成后,当前目录下会生成vlc-2.2.1目录,即为绿色版VLC。

执行测试

Ubuntu下测试。

1 2
$ cd vlc-2.2.1 $ wine vlc.exe

程序界面可正常启动,打开一个视频,音频正常,显示不正常。

将程序放置到Windows平台测试则正常。

~~ EOF ~~

转载地址:http://lawzo.baihongyu.com/

你可能感兴趣的文章
物联网未来趋势:边缘计算正渐渐兴起
查看>>
error recoder,error debug for openStack kilo
查看>>
聚类算法概述
查看>>
Windows Server 2012正式版RDS系列⑿
查看>>
CentOS ips bonding
查看>>
Active Defense Harbinger Distribution
查看>>
ASP.NET MVC Framework 动态汇集
查看>>
个人拙见之1-- NAS、CIFS、NFS之间的关系
查看>>
Android:Context上下文菜单、ContextMenu
查看>>
Tokyo Tyrant性能优化策略
查看>>
继承与派生(二)
查看>>
Nagios整合cacti部署详解
查看>>
Windows变慢原因分析
查看>>
Vbs获取两个日期天数间隔
查看>>
c/c++通用内存泄漏检测框架GMFD(General Memory Fault Detection Framework)
查看>>
Citrix小贴纸--PVS差异vDisk.
查看>>
iphone开源网络编程cocoaasyncsocket
查看>>
Ubuntu和OSX之间通过AD验证共享文件夹(详细设置)
查看>>
hadoop cdh4.6.0编译方法
查看>>
参与 Qt 文档翻译项目
查看>>