Msys+MinGW编译VLC

说明:本文只是对官方文档进行简单的翻译总结,旨在帮助一些英文不太好的朋友。官方文档请见wiki.videolan.org/Win32CompileMSYSNew。

Msys是MinGW的一个辅助工具,包括一些基于GCC的编译工具链。有了它,你能够轻松的在Windows上编译VLC(实际上,交叉编译VLC将是更加容易,轻松而且便捷)。

你需要安装以下工具:7-zip,notepad++。这两个软件,你可以从官方免费下载并安装(笔者提醒,解压请使用7-zip,编译文件请使用notepad++)。

TDM/MinGW的安装

首先,从http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download链接下载tdm-gcc-4.5.2.exe,运行安装程序,取消“Check for updated files…”,选择Create,安装到C:MinGW目录下(默认目录是C:MinGW32,请修改之),其它选项则保持默认。当完成安装时,请确保C:MinGWin路径已经添加到环境变量PATH中。

MinGW工具包

从以下链接http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz下载,并解压到C:MinGW。

Msys的安装

从以下链接下载Msys安装程序http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11.exe。将其安装至C:Msys1.0下,在随后弹出的命令窗口中,按下面的方式回答问题

Accept  Post  Install[yn ]:y(输入y,下同)

MinGW  Installed?[yn ]:y

Path  to MinGW:C:/MinGW

Msys开发工具包的安装

从以下链接下载安装程序http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe。运行安装程序,保持默认即可。

AutoTools和libcrypt的安装

从如下链接下载程序,并将它们解压到C:Msys1.0(笔者提醒,请右击压缩文件,选择用7-zip解压)。

http://sourceforge.net/projects/mingw/files/MSYS/autoconf/autoconf-2.63-1/autoconf-2.63-1-msys-1.0.11-bin.tar.lzma/download

http://sourceforge.net/projects/mingw/files/MSYS/automake/automake-1.11-1/automake-1.11-1-msys-1.0.11-bin.tar.lzma/download

http://sourceforge.net/projects/mingw/files/MSYS/libtool/libtool-2.2.7a-1/libtool-2.2.7a-1-msys-1.0.11-bin.tar.lzma/download

http://prdownloads.sourceforge.net/mingw/libcrypt-1.1_1-2-msys-1.0.11-dll-0.tar.lzma

http://sourceforge.net/projects/mingw/files/MSYS/perl/perl-5.8.8-1/perl-5.8.8-1-msys-1.0.17-bin.tar.lzma/download

Glib和PKG-CONFIG

同上,请下载如下文件并将它们解压到C:Msys1.0

注意,请下载最新版本

http://ftp.gnome.org/pub/GNOME/binaries/win32/glib

ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config_0.23-3_win32.zip

ftp://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-dev_0.23-3_win32.zip

http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime_0.18.1.1-2_win32.zip

增加pkg config path 变量

打开C:Msys1.0msys.bat(笔者提醒,请使用Notepat++打开),并在文件的最顶端增加set PKG_CONFIG_PATH=/win32/lib/pkgconfig。再次打开C:Msys1.0inlibtool文件(同样的,请使用Notepad++),定位到9926行,增加 /mingw/lib。追求后的文件看起来像是这样:compiler_lib_search_dirs="/usr/lib /usr/lib /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1 /bin/../lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /usr/lib/gcc-lib/i686-pc-msys/2.95.3-1/../../../../i686-pc-msys/lib /mingw/lib"。我已经用红色字体标识出追加的内容。

LUA Tools

从以下链接下载luahttp://www.lua.org/ftp/lua-5.1.4.tar.gz。解压到C:Msys1.0home<username>(笔者提醒:<username>是你当前Windows的登录用户,默认情况下XP系统是Administrator,后续版本是你安装系统是的登录用户)。运行Msys,执行如下命令:

l  cd /home/<username>/lua-5.1.4
l  make mingw
l  cd src
l  cp *.exe *.dll /bin
l  cd ..

预编译Contribs包

从以下位置下载contrib-20111017-win32-bin-gcc-4.4.4-runtime-3.17-only.tar包,解压文件,将其中win32文件夹复制到C:Msys1.0目录下,复制后的文件结构看起来像这个样子(以libdvdnav.a为例)

C:Msys1.0win32lilibdvdnav.a

下载VLC源代码,解压到C:Msys1.0home<username>目录下,重命名为vlc。对于1.1.X版本的源代码(请从附件中下载configure-msys.sh及configure-common.sh两个文件,并保存至C:msys1.0home<username>vlcextraspackagewin32目录下)

Whoami和hostname

从以下链接下载http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/coreutils文件,请选择最新版本,下载后的文件名大概像现在这个样子(coreutils-5.97-2-msys-1.0.11-ext.tar.lzma,注意-ext后缀)。解压后,将who.exe,whoami.exe及hostname.exe复制到C:Msys1.0in目录下。

http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/libiconv处下载libintl动态链接库,文件名大概像(libiconv-1.13.1-2-msys-1.0.13-dll-2.tar.lzma),并解压至C:Msys1.0in目录下。

http://sourceforge.net/projects/mingw/files/MSYS/BaseSystem/gettext处下载文件名像libintl-0.17-2-msys-dll-8.tar.lzma的文件,并解压到C:Msys1.0in目录下。

创建一个新文件,包含如下代码

echo 'lovey599'

保存为whoami(注意不要任何扩展名),并复制到C:Msys1.0in目录下。

打开C:MSys1.0home<username>vlcconfigure.ac文件,搜索VLC_COMPILE_HOST并作修改,以前的是如下样子AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2> /dev/null || hostname`", [host which ran configure])

修改成AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [host which ran configure])

编译VLC

l  启动Msys

l  cd vlc

l  cp  -v  /usr/win32/share/aclocal/*  m4/

l  cp  -v  /usr/share/aclocal/*  m4/

l  PATH=/usr/win32/bin:$PATH  ./bootstrap

l  sh  extras/package/win32/configure-msys.sh

l  PATH=/usr/win32/bin:$PATH make

l  make package-win32-base

完成后,你可以在C:Msys1.0home<username>vlc目录下看见一个以vlc-x.x.x命名的文件夹,复制出来即可,这就是编译后的目标文件。

特别提醒,采用本文所描述的方法编译出来的VLC版本,需要附加tdm-gcc的运行库,它们分别是libgcc_s_sjlj-1.dll和libstdc++-6.dll,位于C:MinGWin目录下,将其复制到vlc-x.x.x目录下即可。

原文地址:https://www.cnblogs.com/djzny/p/3393779.html