Windows下编译VLC
2014-05-13 14:55
633 查看
Win32CompileMSYSNew
1.1关于
MSys是 MinGW的辅助编译环境,基于GCC并针对于windows编译。可以直接在windows环境下生成vlc。注意,如果需要你也可以在linux环境下通过交叉编译(http://wiki.videolan.org/Win32Compile)获得vlc,而且这种方法感觉更快捷。
VLC是个复杂的工程,基本的命令行经验是必须的。并且不要着急,整个过程最少需要两个小时,而且如果第一次不成功也不要气馁。
感谢
这份说明由 Jean-Baptiste
Kempf 重新编写,并于2009六月、九月、12月及2010年三月更新,
于2010年六月在J-b, gnosygnu
和 MichaelMc的帮助下再度更新。
2所需要的windows工具
2.1文本编辑器
为了编辑 unix-style格式的文档需要合适的编辑器。
可以使用 notepad2.选择
File 然后将Line endings
设置为 Default to "Unix (LF)",
一般情况下会以原方式保存。
或者可以选择工具notepad++
、我用的工具为ultraedit。
PS不要用写字板等程序打开,这样会将文件默认转化为DOS格式,如果不小心成为dos格式,使用命令dos2unix
+ filename 可以转换成unix格式。
2.2解压缩软件(7-zip)
许多下载的软件都需要解压缩,他们中大部分都是linux格式的(.tar.gz, .tar.bz2,.tar.lzma)
下载 7-zip 用于解压,请注意解压后的目录结构。
3GNUWindows
环境
在安装值钱,确保windows下的用户名没有使用空格(vlc不支持)。如果有请在你的系统中重新建立一个账户,本文中设计到用户名一律以<username>代替。请在对应的位置用你的用户名替代
3.1MinGW3.1
3.1.1安装TDM/MinGW Setup
用此安装目录: http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download(目录已变http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/)
依照此安装向导:
·
取消选择 "Check for updated files..."
·
选择 "Create"
·
安装到 C:\MinGW
·
选择默认设置
·
之后检查 C:\MinGW\bin是否已经添加到windows PATH
路径方法:(
http://www.computerhope.com/issues/ch000549.htm) 3.1.2安装MinGWutils
安装 mingw-utils
地址为: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz
将其解压到目录 c:\MinGW
3.2MSys
3.2.1MSysSetup
安装包在
http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11.exe 按照向导安装到目录 C:\Msys\1.0
在弹出的windows命令框中输入以下答案:
Accept Post Install: [y]
MinGW Installed? : [y]
path to MinGW: [c:/MinGW]
3.2.2MSys Developer Toolkit
安装包在http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe
依据向导,使用默认设置
3.2.3AutoTools and libcrypt
通过下载下列文件,并将其解压到目录C:\Msys\1.0,用来更新autoconf, automake, libtool和
libcrypt :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
3.2.4Glib and PKG-CONFIG
类似地,
下载下术文件将其解压到 C:\MSys\1.0:注意下载最新的版本(glib测试最新测试的为版本2.28,non-dev
version)
·
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
3.2.5 Add pkg config path variable
将下面一行加在文件C:\MSys\1.0\msys.bat:的最上面
set PKG_CONFIG_PATH=/win32/lib/pkgconfig
3.2.6 Fix libtool search dirs
打开 C:\MSys\1.0\bin\libtool
在第9926 行'compiler_lib_search_dirs'的结尾添加'
变成下面的样子 :
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"
3.3 LUA tools
VLC使用 LUA
脚本语言(见 lua.org).
不提供程序,需要自己编译:
·
下载 lua工具包 http://www.lua.org/ftp/lua-5.1.4.tar.gz
·
解压到 home 目录 (C:\MSys\1.0\home\<username>)
·
运行 MSys
·
输入以下命令:
cd /home/<username>/lua-5.1.4
make mingw
这样会在src目录下生成 lua.exe, luac.exe
和 lua51.dll.输入下述命令移动到你的/bin
目录下:
cd src
cp *.exe *.dll /bin
cd ..
4预编译contribs
· 下载文件 http://people.videolan.org/~jb/Contribs/contrib-20100608-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2
· 解压到 C:\MSys\1.0 但是不包含路径
/usr . 例如一个文件应该是如下形式:
C:\MSys\1.0\win32\lib\libdvdnav.a
Contribs基本上是一些预编译使用的第三方库文件(这有一个列表:list ).
5 VLC
源文件
5.1基于:VLC
版本 1.1.0rc3(1.1.12证实可行)
· 下载文件http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc3/vlc-1.1.0-rc3.tar.bz2
· 解压到 to C:\MSys\1.0\home\<username>
· 重命名 the vlc-1.1.0rc3 dir to vlc
5.2增加缺失的文件 configure-msys (限1.1.x)
· 下载 http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD
· 保存到(不使用推荐的名字)C:\msys\1.0\home\<username>\vlc\extras\package\win32\configure-msys.sh
5.3增加缺失的文件configure-common (限1.1.x)
· 下载 http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD
· 保存到(不使用推荐的名字) C:\msys\1.0\home\<username>\vlc\extras\package\win32\configure-common.sh
6
最后更改 : whoami
和hostname
6.1 Whoami
创建一个文件包含下述命令行:
echo '<username>'
保存到目录C:\MSys\1.0\bin\whoami (不需要任何扩展名)
6.2 Hostname
修改 configure.ac
文件
打开文件 C:\MSys\1.0\home\<username>\vlc\configure.ac
· 点击搜索:
· 如下更改:
旧: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
新: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [hostwhich ran configure])
7生成VLC
打开C:\MSys\1.0\msys.bat,输入以下命令:
7.1Bootstrap
cd vlc
cp -v /usr/win32/share/aclocal/* m4/
cp -v /usr/share/aclocal/* m4/
PATH=/usr/win32/bin:$PATH ./bootstrap
7.2 Configure
sh extras/package/win32/configure-msys.sh
如果需要更改设置,
比如"--disable-lua"
需要直接更改文件,而不能以参数的形式附在后面。
Make (编译)
输入以下命令 :
PATH=/usr/win32/bin:$PATH make
7.4Create self-contained packages
编译完成后,
生成VLC 文件包需要输入以下命令:
make package-win32-base
(这会生成一个子目录,名字为 vlc-x.x.x
,剥离出所有其他的程序).
make package-win32-zip
(生成zip压缩包).
make package-win32
(生生自动安装包,但需先安装NSIS )
8问题参考
见Win32CompileMSYSTroubleShooting.
9也可以参考旧版说明
· Win32CompileMSYSOld -deprecated
documentation
1.1关于
MSys是 MinGW的辅助编译环境,基于GCC并针对于windows编译。可以直接在windows环境下生成vlc。注意,如果需要你也可以在linux环境下通过交叉编译(http://wiki.videolan.org/Win32Compile)获得vlc,而且这种方法感觉更快捷。
VLC是个复杂的工程,基本的命令行经验是必须的。并且不要着急,整个过程最少需要两个小时,而且如果第一次不成功也不要气馁。
感谢
这份说明由 Jean-Baptiste
Kempf 重新编写,并于2009六月、九月、12月及2010年三月更新,
于2010年六月在J-b, gnosygnu
和 MichaelMc的帮助下再度更新。
2所需要的windows工具
2.1文本编辑器
为了编辑 unix-style格式的文档需要合适的编辑器。
可以使用 notepad2.选择
File 然后将Line endings
设置为 Default to "Unix (LF)",
一般情况下会以原方式保存。
或者可以选择工具notepad++
、我用的工具为ultraedit。
PS不要用写字板等程序打开,这样会将文件默认转化为DOS格式,如果不小心成为dos格式,使用命令dos2unix
+ filename 可以转换成unix格式。
2.2解压缩软件(7-zip)
许多下载的软件都需要解压缩,他们中大部分都是linux格式的(.tar.gz, .tar.bz2,.tar.lzma)
下载 7-zip 用于解压,请注意解压后的目录结构。
3GNUWindows
环境
在安装值钱,确保windows下的用户名没有使用空格(vlc不支持)。如果有请在你的系统中重新建立一个账户,本文中设计到用户名一律以<username>代替。请在对应的位置用你的用户名替代
3.1MinGW3.1
3.1.1安装TDM/MinGW Setup
用此安装目录: http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.2.exe/download(目录已变http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/)
依照此安装向导:
·
取消选择 "Check for updated files..."
·
选择 "Create"
·
安装到 C:\MinGW
·
选择默认设置
·
之后检查 C:\MinGW\bin是否已经添加到windows PATH
路径方法:(
http://www.computerhope.com/issues/ch000549.htm) 3.1.2安装MinGWutils
安装 mingw-utils
地址为: http://prdownloads.sourceforge.net/mingw/mingw-utils-0.3.tar.gz
将其解压到目录 c:\MinGW
3.2MSys
3.2.1MSysSetup
安装包在
http://sourceforge.net/project/downloading.php?group_id=2435&filename=MSYS-1.0.11.exe 按照向导安装到目录 C:\Msys\1.0
在弹出的windows命令框中输入以下答案:
Accept Post Install: [y]
MinGW Installed? : [y]
path to MinGW: [c:/MinGW]
3.2.2MSys Developer Toolkit
安装包在http://downloads.sourceforge.net/mingw/msysDTK-1.0.1.exe
依据向导,使用默认设置
3.2.3AutoTools and libcrypt
通过下载下列文件,并将其解压到目录C:\Msys\1.0,用来更新autoconf, automake, libtool和
libcrypt :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
3.2.4Glib and PKG-CONFIG
类似地,
下载下术文件将其解压到 C:\MSys\1.0:注意下载最新的版本(glib测试最新测试的为版本2.28,non-dev
version)
·
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
3.2.5 Add pkg config path variable
将下面一行加在文件C:\MSys\1.0\msys.bat:的最上面
set PKG_CONFIG_PATH=/win32/lib/pkgconfig
3.2.6 Fix libtool search dirs
打开 C:\MSys\1.0\bin\libtool
在第9926 行'compiler_lib_search_dirs'的结尾添加'
变成下面的样子 :
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"
3.3 LUA tools
VLC使用 LUA
脚本语言(见 lua.org).
不提供程序,需要自己编译:
·
下载 lua工具包 http://www.lua.org/ftp/lua-5.1.4.tar.gz
·
解压到 home 目录 (C:\MSys\1.0\home\<username>)
·
运行 MSys
·
输入以下命令:
cd /home/<username>/lua-5.1.4
make mingw
这样会在src目录下生成 lua.exe, luac.exe
和 lua51.dll.输入下述命令移动到你的/bin
目录下:
cd src
cp *.exe *.dll /bin
cd ..
4预编译contribs
· 下载文件 http://people.videolan.org/~jb/Contribs/contrib-20100608-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2
· 解压到 C:\MSys\1.0 但是不包含路径
/usr . 例如一个文件应该是如下形式:
C:\MSys\1.0\win32\lib\libdvdnav.a
Contribs基本上是一些预编译使用的第三方库文件(这有一个列表:list ).
5 VLC
源文件
5.1基于:VLC
版本 1.1.0rc3(1.1.12证实可行)
· 下载文件http://download.videolan.org/pub/videolan/testing/vlc-1.1.0-rc3/vlc-1.1.0-rc3.tar.bz2
· 解压到 to C:\MSys\1.0\home\<username>
· 重命名 the vlc-1.1.0rc3 dir to vlc
5.2增加缺失的文件 configure-msys (限1.1.x)
· 下载 http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-msys.sh;hb=HEAD
· 保存到(不使用推荐的名字)C:\msys\1.0\home\<username>\vlc\extras\package\win32\configure-msys.sh
5.3增加缺失的文件configure-common (限1.1.x)
· 下载 http://git.videolan.org/?p=vlc.git;a=blob_plain;f=extras/package/win32/configure-common.sh;hb=HEAD
· 保存到(不使用推荐的名字) C:\msys\1.0\home\<username>\vlc\extras\package\win32\configure-common.sh
6
最后更改 : whoami
和hostname
6.1 Whoami
创建一个文件包含下述命令行:
echo '<username>'
保存到目录C:\MSys\1.0\bin\whoami (不需要任何扩展名)
6.2 Hostname
修改 configure.ac
文件
打开文件 C:\MSys\1.0\home\<username>\vlc\configure.ac
· 点击搜索:
· 如下更改:
旧: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname -f 2>/dev/null || hostname`", [host which ran configure])
新: AC_DEFINE_UNQUOTED(VLC_COMPILE_HOST, "`hostname`", [hostwhich ran configure])
7生成VLC
打开C:\MSys\1.0\msys.bat,输入以下命令:
7.1Bootstrap
cd vlc
cp -v /usr/win32/share/aclocal/* m4/
cp -v /usr/share/aclocal/* m4/
PATH=/usr/win32/bin:$PATH ./bootstrap
7.2 Configure
sh extras/package/win32/configure-msys.sh
如果需要更改设置,
比如"--disable-lua"
需要直接更改文件,而不能以参数的形式附在后面。
Make (编译)
输入以下命令 :
PATH=/usr/win32/bin:$PATH make
7.4Create self-contained packages
编译完成后,
生成VLC 文件包需要输入以下命令:
make package-win32-base
(这会生成一个子目录,名字为 vlc-x.x.x
,剥离出所有其他的程序).
make package-win32-zip
(生成zip压缩包).
make package-win32
(生生自动安装包,但需先安装NSIS )
8问题参考
见Win32CompileMSYSTroubleShooting.
9也可以参考旧版说明
· Win32CompileMSYSOld -deprecated
documentation
相关文章推荐
- boost asio allocation 例子
- arm9时钟及定时器
- 第十一周上机项目二拓展
- java 排列组合(递归实现)
- Hadoop MapReduce中如何处理跨行Block和inputSplit
- mysql源码安装
- 初学java之触发响应事件举例子
- SQL 本地数据库数据插入到服务器数据库
- 【项目1 - 长颈鹿类对动物类的继承】理解基类中成员的访问限定符和派生类的继承方式
- chmod修改linux目录权限
- 华为S5700 S2700交换机 配置
- Venn Diagram in Qlikview using google chart api
- 第十一周 项目一
- The Ultimate Tar Command Tutorial with 10 Practical Examples
- 文本输出,取自《Windows程序设计》
- java 多线程 同步
- 查看修改MySQL字符集
- Elasticsearch中使用reiver-jdbc导入数据
- 判断链表是否有环及环入口点的求法
- android软件更新功能简易实现(未添加版本比较)