[vlc-devel] Building win32 VLC 2.1.x from Ubuntu

Michael Ditum mike at mikeditum.co.uk
Fri Dec 19 18:21:25 CET 2014


Hi,

I'm trying to get the latest VLC 2.1 release building from git for Windows.
I'm using a Ubuntu 13.10 x64 VM system to do the compilation. I've followed
the instructions on https://wiki.videolan.org/Win32Compile and have managed
to compile everything and create the NSIS installer package successfully.

There was only one change to the instructions that I had to make. Currently
the "make prebuilt" command doesn't work with 2.1 branch as the ftp site
currently wont allow anonymous login. Also if I download the latest contrib
from https://get.videolan.org/contrib/i686-w64-mingw32/ the configure
command fails as the libraries are too new, so I downloaded the contrib
that was created before 2.1.5 was released and used that instead.

However when I install it on my system I get a message popping up during
the installation process (and also when I try and start VLC afterwards)
saying "VLC media player 2.1.6 has stopped working".

The information Windows lists on the problem is:

Problem signature:
  Problem Event Name: BEX
  Application Name: vlc-cache-gen.exe
  Application Version: 2.1.6.0
  Application Timestamp: 5494490a
  Fault Module Name: libqt4_plugin.dll
  Fault Module Version: 0.0.0.0
  Fault Module Timestamp: 54944909
  Exception Offset: 00000000
  Exception Code: c0000005
  Exception Data: 00000008
  OS Version: 6.1.7601.2.1.0.768.3
  Locale ID: 2057
  Additional Information 1: 9ffc
  Additional Information 2: 9ffc01cd9d2ac339ba5a046f56be5a06
  Additional Information 3: d727
  Additional Information 4: d727e6ef583e78f4baa061d53d6141f3

>From what I gather BEX is a Buffer Overflow and is related to the Data
Execution Prevention system in Windows. If I download the
vlc-2.1.5-win32.exe off of the VideoLAN website then it installs and runs
fine, so it must be something odd I'm doing when compiling it.

My notes for compilation are below. Any help on working out why this is
happening would be greatly appreciated.

Mike

#install needed packages
apt-get install -y -qq \
gcc-mingw-w64-i686 \
g++-mingw-w64-i686 \
mingw-w64-tools \
build-essential \
lua5.2 \
libtool \
automake \
autoconf \
autopoint \
make \
gettext \
pkg-config \
qt4-dev-tools \
git \
subversion \
cmake \
cvs \
wine-dev \
zip \
p7zip-full \
nsis \
bzip2 \
vim-gnome \
vim-gui-common \
vim-runtime

#clone vlc 2.1
git clone git://git.videolan.org/vlc/vlc-2.1.git vlc

#download the contrib
wget
https://get.videolan.org/contrib/i686-w64-mingw32/vlc-contrib-i686-w64-mingw32-20140507.tar.bz2

#change into vlc dir
cd vlc

#create and change into contrib dir
mkdir -p contrib/win32 && cd contrib/win32

#run the bootstrap
../bootstrap --host=i686-w64-mingw32

#symlink in the contrib as make prebuilt tries to download contrib and
fails (plus the latest one isn't supported by vlc 2.1)
ln -s ../../../vlc-contrib-i686-w64-mingw32-20140507.tar.bz2
vlc-contrib-i686-w64-mingw32-latest.tar.bz2
make prebuilt

#remove the 64 bit binaries
rm -f ../i686-w64-mingw32/bin/moc ../i686-w64-mingw32/bin/uic
../i686-w64-mingw32/bin/rcc

#go back and run the bootstrap
cd -
./bootstrap

#create the dir we'll be compiling in
mkdir win32 && cd win32

#tell the system where to find the pkgconfig dir
export PKG_CONFIG_LIBDIR=$HOME/vlc/contrib/i686-w64-mingw32/lib/pkgconfig

#run configure
../extras/package/win32/configure.sh --host=i686-w64-mingw32

#compile
make

#create the package
make package-win32
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/vlc-devel/attachments/20141219/b6a4fe15/attachment.html>


More information about the vlc-devel mailing list