趣百科

windows下编译vlc-1.1.5详解

编辑:Simone 2024-11-22 09:42:16 518 阅读

windows下编译vlc-1.1.5详解

VLC的全名是Video Lan Client,是一个开源的、跨平台的视频播放器。VLC支持大量的音视频传输、封装和编码格式。

创建VLC的编译环境。VLC在Windows下有两种编译方式:

方式一:Msys+MinGW

方式二:Cygwin

二者大同小异,下面主要介绍Cygwin的方式编译VLC。Cygwin是一个在Windows下面模拟Linux环境的东西。它提供了很多库和应用程序,让你可以像在Linux上一样来使用Windows。到官网下载Cygwin的安装程序setup.exe。

下载完成后,点击Cygwin的安装程序setup.exe进行安装。

点击【下一步】按钮,进去如下界面,有三种安装方式:

3.1从网络安装

3.2下载但不安装

3.3从本地安装

Cygwin安装的时候,需要安装一些默认的库,同时我们编译VLC还需要加入一些库来支持VLC的编译。如果你没有下载相应的库到本地则选择第一种方式“Install from Internet”来安装。如果已经把库下载到本地,则选择第三种方式"Install from Local Directory"来安装。小编采用的是第三种方式安装Cygwin。

点击【下一步】,根据窗口提示选择安装目录。继续【下一步】选择本地库安装包的目录。

点击【下一步】,根据窗口提示选择需要安装的包。

选择所有需要的安装包后,点击【下一步】进行安装,并等待安装完成。

安装结束后,选择创建桌面图标,并点击【完成】按钮。

下载VLC源码包(vlc-1.1.5.tar.bz2)、编译库(contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2),和LUA语言包(lua-5.1.4.tar.gz)。

下载完成编译源码、库和语言包后,点击桌面上Cygwin程序快捷键,打开Cygwin应用程序。

打开程序之后,将vlc-1.1.5.tar.bz2和lua-5.1.4.tar.gz拷贝到Cygwin安装目录下的/home/yourname下面(注:yourname为你自己的用户名,如从上面打开的Cygwin程序应用窗口可知小编的yourname为lenovo)。小编Cygwin的安装目录为D:\cygwin,则拷贝后如下图。

拷贝完成后,返回Cygwin程序窗口,使用Linux命令解压lua-5.1.4.tar.gz软件包,解压命令如下:

$tar zxvflua-5.1.4.tar.gz

解压lua-5.1.4.tar.gz完成后,进入lua-5.1.4目录,在记事本中修改src/Makefile,将CC = gcc改成CC = gcc -mno-cygwin并保存。

修改完成后,返回Cygwin程序窗口,进入到lua-5.1.4目录,执行如下命令:

$make ansi

$make install

编译并安装LUA。

在~(/home/yourname)目录下解压vlc-1.1.5.tar.bz2,解压命令如下:

$tar jxvfvlc-1.1.5.tar.bz2

将contrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2库文件包拷贝到Cygwin程序的安装目录下(即与上面提到的home目录为同级目录),返回Cygwin应用程序窗口,在~(/)目录下对库进行解压,解压命令如下:

$tar jxvfcontrib-20100616-win32-bin-gcc-4.4.4-runtime-3.17-only.tar.bz2

删除/usr/win32/bin下面的moc,rcc,uic这三个文件,注意,保留moc.exe,rcc.exe,uic.exe。

进入vlc-1.1.5,并执行如下命令:

$./bootstrap

编译成功后会显示如下内容:

Successfully bootstrapped

注释:若出现此错误

在Cygwin中开发Rails,有时候需要执行SH命令,而这些命令调用DLL时经常会遇到类似的错误提示:

[main] ruby 4208 C:/cygwin/bin/ruby.exe: *** fatal error - unable to remap C:/cygwin/bin/cygssl-0.9.8.dll to

same address as parent(0×340000) != 0×4730000

[main] ruby 1752 fork: child 4208 - died waiting for dll loading, errno 11

具体原因不大清楚,解决方法如下:

CMD到Cygwin的bin路径下,执行ash命令,或者直接run这个命令;

在ash提示符后面运行/bin/rebaseall,注意要输入完整,如果只输入rebaseall,会提示找不到这个命令,而且这个命令只能在ash下面执行,不能在Cygwin下面执行。

现在打开Cygwin,应该一切正常了。

在vlc-1.1.5目录下,新建脚本文件myBuild.sh,添加如下内容:

PATH=/usr/win32/bin:$PATH \

PKG_CONFIG_LIBDIR=/usr/win32/lib/pkgconfig \

CPPFLAGS="-I/usr/win32/include -I/usr/win32/include/ebml" \

LDFLAGS=-L/usr/win32/lib \

CC="gcc -mno-cygwin" CXX="g++ -mno-cygwin" \

./configure \

--host=i686-pc-mingw32 \

--enable-nls --enable-sdl \

--enable-avcodec --enable-avformat --enable-swscale \

--enable-faad --enable-flac --enable-theora \

--enable-freetype \

--enable-fribidi \

--disable-fluidsynth \

--enable-live555 --with-live555-tree=/usr/win32/live.com \

--enable-caca \

--with-dvdnav-config-path=/usr/win32/bin \

--disable-vcdx --enable-goom \

--enable-twolame --enable-dvdread \

--enable-debug --enable-dca \

--disable-mkv --disable-taglib --disable-projectm \

--disable-zvbi --disable-schroedinger --disable-dirac \

--enable-mozilla --with-mozilla-sdk-path=/usr/win32/gecko-sdk

返回Cygwin应用程序窗口,在vlc-1.1.5目录下执行./myBuild命令。

成功后会显示

libvlc configuration

--------------------

version : 1.1.5

system : mingw32

architecture : i686 mmx sse sse2

build flavour : debug devel

vlc aliases : cvlc rvlc svlc qvlc

plugins/bindings : activex mozilla

You can tune the compiler flagsinvlc-config.

To build vlc and its plugins, type `./compile' or `make'.

修改vlc-1.1.5目录下的libtool文件,需改内容如下:

修改global_symbol_pipe=""为:

global_symbol_pipe="sed -n -e 's/^.*[]//([ABCDGIRSTW][ABCDGIRSTW]*//)[][]*//(//)//([_A-Za-z][_A-Za-z0-9]*//)/$///1//2//3 //3/p'"

修改完成后,返回Cygwin应用程序窗口,在vlc-1.1.5目录下执行如下操作:

$make

执行make应该不会报错,成功后,继续执行:

$make package-win32-base

至此,windows下编译vlc-1.1.5就此搞定!

版权声明:本站【趣百科】文章素材来源于网络或者用户投稿,未经许可不得用于商用,如转载保留本文链接:https://www.qubaik.com/answer/72781.html

相关推荐