<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Galetrouge</id>
	<title>VideoLAN Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.videolan.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Galetrouge"/>
	<link rel="alternate" type="text/html" href="https://wiki.videolan.org/Special:Contributions/Galetrouge/"/>
	<updated>2026-11-04T18:23:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=12525</id>
		<title>Win32Compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.videolan.org/index.php?title=Win32Compile&amp;diff=12525"/>
		<updated>2008-10-05T22:17:04Z</updated>

		<summary type="html">&lt;p&gt;Galetrouge: /* Before you start */ correct menu for version 0.9.2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;From http://developers.videolan.org/vlc/vlc/INSTALL.win32&lt;br /&gt;
&lt;br /&gt;
 $Id: INSTALL.win32 15707 2006-05-22 09:42:08Z xtophe $&lt;br /&gt;
 INSTALL file for the Windows9x/Me/NT4/2k/XP version of the VLC media player&lt;br /&gt;
&lt;br /&gt;
==Before you start==&lt;br /&gt;
&lt;br /&gt;
One common desire that leads people to want to rebuild VLC is to &amp;quot;rebuild a debug version&amp;quot; or &amp;quot;add printf()s&amp;quot;, but this is not strictly necessary, as VLC includes a debug logging feature by default.  If you are using a binary release (or have already built VLC), just run &amp;lt;CODE&amp;gt;&#039;vlc.exe&#039;&amp;lt;/CODE&amp;gt; and select &amp;quot;Messages...&amp;quot; from the &amp;quot;Tools&amp;quot; menu.&lt;br /&gt;
&lt;br /&gt;
You can also run VLC from the Windows command-line interpreter, &amp;lt;CODE&amp;gt;cmd.exe&amp;lt;/CODE&amp;gt; (a.k.a. &amp;quot;DOS window&amp;quot;), in which case you&#039;ll be able to use the command-line arguments. You can obtain a list of these command line arguments by typing &amp;lt;CODE&amp;gt;&#039;vlc --help&#039;&amp;lt;/CODE&amp;gt; or &amp;lt;CODE&amp;gt;&#039;vlc --help --advanced&#039;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
To store a debug log of the current VLC session, you can use &amp;lt;CODE&amp;gt;&#039;vlc -vvv --extraintf=logger&#039;&amp;lt;/CODE&amp;gt;. You will end-up with a &amp;lt;CODE&amp;gt;vlc-log.txt&amp;lt;/CODE&amp;gt; file in your current directory.&lt;br /&gt;
&lt;br /&gt;
==Building VLC from source==&lt;br /&gt;
&lt;br /&gt;
If you want to build VLC from source, you have several choices:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Method&lt;br /&gt;
 ! Documentation&lt;br /&gt;
 ! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux&lt;br /&gt;
| None&lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; cross-compilation method&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin]&lt;br /&gt;
| [[Win32CompileCygwin]]&lt;br /&gt;
| &#039;&#039;&#039;Preferred&#039;&#039;&#039; native compilation method&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile Nightlies (GIT) with [http://www.cygwin.com Cygwin]&lt;br /&gt;
| [[Win32CompileCygwinNew]]&lt;br /&gt;
| &#039;&#039;&#039;Working&#039;&#039;&#039; native compilation method for Nightly builds (GIT).&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW]&lt;br /&gt;
| [[Win32CompileMSYS]]&lt;br /&gt;
| MSYS is a minimal build environment to compile Unixish projects under Microsoft Windows. It provides all the commonly-required Unix tools (like sh, gmake, and so forth). Please note that the gettext utilities are not included in the default MSYS/MINGW packages so you won&#039;t be able to build VLC with i18n support.&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with Microsoft Visual C++&lt;br /&gt;
| None&lt;br /&gt;
|&lt;br /&gt;
&#039;&#039;&#039;Not advised.&#039;&#039;&#039; &amp;lt;P&amp;gt;&lt;br /&gt;
Even though VLC includes some MSVC project files, this method is advised only if you just want to experiment/play with some basic functionality in VLC. VLC depends on a lot of third-party libraries and building them in MSVC is inconvenient (and in some cases, impossible). &amp;lt;BR&amp;gt; &lt;br /&gt;
If you want to run VLC under the MSVC debugger, use &amp;lt;CODE&amp;gt;--fast-mutex --win9x-cv-method=1&amp;lt;/CODE&amp;gt; because the debugger usually loses signals sent by PulseEvent().&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Obtaining the build tools==&lt;br /&gt;
&lt;br /&gt;
Each build method requires its own toolchain:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Method&lt;br /&gt;
 ! Notes&lt;br /&gt;
|-&lt;br /&gt;
| Cross-compile with mingw32 on GNU/Linux&lt;br /&gt;
|&lt;br /&gt;
*Debian/Ubuntu users can &amp;lt;CODE&amp;gt;apt-get install mingw32 mingw32-binutils&amp;lt;/CODE&amp;gt;&lt;br /&gt;
*Gentoo users can &amp;lt;CODE&amp;gt;emerge xmingw-gcc xmingw-binutils&amp;lt;/CODE&amp;gt;&lt;br /&gt;
*Other systems may attempt http://www.mingw.org/mingwfaq.shtml#faq-cross&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.cygwin.com Cygwin]&lt;br /&gt;
| Install Cygwin, adding the optional &amp;lt;CODE&amp;gt;gcc-g++&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;gcc-mingw&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;mingw-runtime&amp;lt;/CODE&amp;gt; and &amp;lt;CODE&amp;gt;win32-api&amp;lt;/CODE&amp;gt; packages from the &amp;lt;CODE&amp;gt;Devel&amp;lt;/CODE&amp;gt; category.&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile Nightlies (GIT) with [http://www.cygwin.com Cygwin]&lt;br /&gt;
| Install Cygwin, adding the optional components that are mentioned [http://wiki.videolan.org/Win32CompileCygwinNew#Selecting_Cygwin_packages_to_install here].&lt;br /&gt;
|-&lt;br /&gt;
| Native-compile with [http://www.mingw.org MSYS+MINGW]&lt;br /&gt;
| Download and install the latest MSYS, MSYS-DTK, and MINGW from http://www.mingw.org/download.shtml. Begin with the MSYS auto-installer, then extract MINGW into &amp;lt;CODE&amp;gt;C:\MSYS\1.0\MINGW&amp;lt;/CODE&amp;gt;. You also have to remember to remove the &amp;lt;CODE&amp;gt;make&amp;lt;/CODE&amp;gt; utility included with MINGW as it conflicts with the one from MSYS (just rename or remove &amp;lt;CODE&amp;gt;C:\MSYS\1.0\MINGW\BIN\MAKE.EXE&amp;lt;/CODE&amp;gt;).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Saving time by using pre-built libraries==&lt;br /&gt;
&lt;br /&gt;
VLC requires other open source projects to provide some features (like AC3 audio decoding and MPEG-4 video decoding).  A complete list of required libraries from these projects can be found at http://developers.videolan.org/vlc/.  Depending on your needs, you must either build your own versions of these libraries or use VLC&#039;s convenient pre-built versions.&lt;br /&gt;
&lt;br /&gt;
If you feel you must build these libraries from source, the blessed source code may be found at http://download.videolan.org/pub/testing/contrib/.  An automated way of building the contrib libraries is provided in extra/contrib. It will download, configure, and build the libraries. See the extras/contrib/README for more info.&lt;br /&gt;
&lt;br /&gt;
If you want to save yourself time and energy by using the pre-built versions of these libraries, you may download them from ftp://ftp.videolan.org/pub/vlc/&#039;&#039;&#039;version&#039;&#039;&#039;/win32/contrib-&#039;&#039;&#039;yyyymmdd&#039;&#039;&#039;-win32-&#039;&#039;&#039;version&#039;&#039;&#039;-bin-gcc-&#039;&#039;&#039;gccversion&#039;&#039;&#039;-only.tar.bz2 . The pre-built versions will &#039;&#039;only work with MINGW or Cygwin&#039;&#039;.  Note that the version you download must match that of the MINGW compiler, &amp;lt;CODE&amp;gt;i586-mingw32msvc-gcc&amp;lt;/CODE&amp;gt;, which you can verify by typing &amp;lt;CODE&amp;gt;&#039;i586-mingw32msvc-gcc --ver&#039;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
There are two installation strategies:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Location&lt;br /&gt;
 ! Command&lt;br /&gt;
 ! Advantages&lt;br /&gt;
 ! Disadvantages&lt;br /&gt;
|-&lt;br /&gt;
| Install the pre-built libraries into the Cygwin standard directories (/usr/win32/*)&lt;br /&gt;
| &amp;lt;CODE&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /&amp;lt;/CODE&amp;gt; (Note the &amp;lt;CODE&amp;gt;&amp;quot;-C /&amp;quot;&amp;lt;/CODE&amp;gt;!)&lt;br /&gt;
|&lt;br /&gt;
*Shorter initial setup time&lt;br /&gt;
|&lt;br /&gt;
*May conflict with other headers/libraries in the standard directories&lt;br /&gt;
*Difficult to get rid of if you want to free up space or to upgrade to the next version of the pre-built libraries (Installing over the top of older versions is highly discouraged!)&lt;br /&gt;
|-&lt;br /&gt;
| Install the pre-built libraries into a project-specific directory (e.g., &amp;lt;CODE&amp;gt;D:\VLC&amp;lt;/CODE&amp;gt;)&lt;br /&gt;
| &amp;lt;CODE&amp;gt;tar jxf contrib-20061122-win32-bin-gcc-3.4.5-only.tar.bz2 -C /cygdrive/d/VLC&amp;lt;/CODE&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
*No conflicts with other projects built under Cygwin&lt;br /&gt;
*Easy to get rid of if you want to free up space or to upgrade to the next version of the pre-built libraries&lt;br /&gt;
*For multi-person projects, easy to put under revision control to ensure all project members are using the correct pre-built versions&lt;br /&gt;
|&lt;br /&gt;
*Requires that you set &amp;lt;CODE&amp;gt;CPPFLAGS&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;LDFLAGS&amp;lt;/CODE&amp;gt; appropriately when building&lt;br /&gt;
*Requires that you modify hard-coded paths in the pre-built libraries (see below)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
If installing into a project-specific directory, you must modify some hard-coded paths in the pre-build libraries as follows:&lt;br /&gt;
&amp;lt;PRE&amp;gt;&lt;br /&gt;
CONTRIBS=/cygdrive/d/VLC&lt;br /&gt;
for file in $CONTRIBS/bin/*-config $CONTRIBS/lib/*.la ; do&lt;br /&gt;
	perl -i.bak -p -e &#039;s|/usr/win32|$ENV{&amp;quot;CONTRIBS&amp;quot;}|g&#039; $file&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/PRE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Configuring the build==&lt;br /&gt;
&lt;br /&gt;
Once you&#039;ve got all the files you need in place, you need to configure the build with the &amp;lt;CODE&amp;gt;configure&amp;lt;/CODE&amp;gt; script.  In the following examples, assume that the third-party libraries are installed in &amp;lt;CODE&amp;gt;$CONTRIBS&amp;lt;/CODE&amp;gt;.  If installed in the Cygwin standard directories, use &amp;lt;CODE&amp;gt;export CONTRIBS=/usr/win32&amp;lt;/CODE&amp;gt;. Otherwise use &amp;lt;CODE&amp;gt;export CONTRIBS=/cygdrive/d/VLC&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If you are cross-compiling under GNU/Linux, you can use something along these lines:&lt;br /&gt;
&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  export PKG_CONFIG_PATH=$CONTRIBS/lib/pkgconfig \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I$CONTRIBS/include -I$CONTRIBS/include/ebml&amp;quot; CXXCPP=i586-mingw32msvc-cpp \&lt;br /&gt;
  LDFLAGS=-L$CONTRIBS/lib \&lt;br /&gt;
  CC=i586-mingw32msvc-gcc CXX=i586-mingw32msvc-g++&lt;br /&gt;
  ./configure --host=i586-mingw32msvc --build=i386-linux \&lt;br /&gt;
      --disable-[[gtk]] \&lt;br /&gt;
      --enable-[[nls]] --enable-[[sdl]] --with-sdl-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --enable-[[ffmpeg]] --with-ffmpeg-mp3lame --with-ffmpeg-[[faac]] \&lt;br /&gt;
      --with-ffmpeg-[[zlib]] --enable-[[faad]] --enable-[[flac]] --enable-[[theora]] \&lt;br /&gt;
      --with-[[wx]]-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-[[freetype]]-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-[[fribidi]]-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --enable-[[live555]] --with-live555-tree=$CONTRIBS/live.com \&lt;br /&gt;
      --enable-[[caca]] --with-caca-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-[[xml2]]-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-[[dvdnav]]-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --disable-[[cddax]] --disable-[[vcdx]] --enable-[[goom]] \&lt;br /&gt;
      --enable-[[twolame]] --enable-[[dvdread]] \&lt;br /&gt;
      --enable-[[debug]]&lt;br /&gt;
&lt;br /&gt;
If you are using cygwin, you can build VLC with or without the POSIX emulation layer. Without is usually better and with POSIX emulation hasn&#039;t been tested in over a year. So to build without the emulation layer, use something like this:&lt;br /&gt;
&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  export PKG_CONFIG_PATH=$CONTRIBS/lib/pkgconfig \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I$CONTRIBS/include -I$CONTRIBS/include/ebml&amp;quot; CXXCPP=$CPPFLAGS \&lt;br /&gt;
  LDFLAGS=-L$CONTRIBS/lib \&lt;br /&gt;
  CC=&#039;gcc -mno-cygwin&#039; CXX=&#039;g++ -mno-cygwin&#039; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --disable-gtk \&lt;br /&gt;
      --enable-nls --enable-sdl --with-sdl-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-freetype-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-fribidi-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --enable-live555 --with-live555-tree=$CONTRIBS/live.com \&lt;br /&gt;
      --enable-caca --with-caca-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-xml2-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-dvdnav-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you want to use the emulation layer, then just omit &amp;lt;CODE&amp;gt;CFLAGS&amp;lt;/CODE&amp;gt; and &amp;lt;CODE&amp;gt;CXXFLAGS&amp;lt;/CODE&amp;gt;. You&#039;re on your own, though.&lt;br /&gt;
&lt;br /&gt;
If you are compiling with MSYS/MINGW, then you can use something along those lines:&lt;br /&gt;
  ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  export PKG_CONFIG_PATH=$CONTRIBS/lib/pkgconfig \&lt;br /&gt;
  CPPFLAGS=&amp;quot;-I$CONTRIBS/include -I$CONTRIBS/include/ebml&amp;quot; CXXCPP=$CPPFLAGS \&lt;br /&gt;
  LDFLAGS=-L$CONTRIBS/lib \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --disable-gtk \&lt;br /&gt;
      --enable-nls --enable-sdl --with-sdl-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --enable-ffmpeg --with-ffmpeg-mp3lame --with-ffmpeg-faac \&lt;br /&gt;
      --with-ffmpeg-zlib --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --with-wx-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-freetype-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-fribidi-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --enable-caca --with-caca-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-xml2-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --with-dvdnav-config-path=$CONTRIBS/bin \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --disable-[[mkv]] \&lt;br /&gt;
      --enable-debug&lt;br /&gt;
&lt;br /&gt;
If you have used the &amp;quot;extras/contrib&amp;quot; way, you don&#039;t need to specify &amp;lt;CODE&amp;gt;CFLAGS&amp;lt;/CODE&amp;gt;, &amp;lt;CODE&amp;gt;LDFLAGS&amp;lt;/CODE&amp;gt; and &amp;lt;CODE&amp;gt;--with-foo-config-path=&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
 ./bootstrap &amp;amp;&amp;amp; \&lt;br /&gt;
  ./configure \&lt;br /&gt;
      --disable-gtk \&lt;br /&gt;
      --enable-nls --enable-sdl \&lt;br /&gt;
      --enable-ffmpeg --enable-faad --enable-flac --enable-theora \&lt;br /&gt;
      --disable-cddax --disable-vcdx --enable-goom \&lt;br /&gt;
      --enable-twolame --enable-dvdread \&lt;br /&gt;
      --enable-mkv --enable-caca --enable-live555\&lt;br /&gt;
      --enable-debug&lt;br /&gt;
&lt;br /&gt;
See &amp;lt;CODE&amp;gt;&#039;./configure --help&#039;&amp;lt;/CODE&amp;gt; for more information.&lt;br /&gt;
&lt;br /&gt;
==Building VLC==&lt;br /&gt;
&lt;br /&gt;
Once configured, to build VLC, just run &amp;lt;CODE&amp;gt;&#039;make&#039;&amp;lt;/CODE&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Once the compilation is done, you can either run VLC directly from the source tree or you can build self-contained VLC packages with the following &amp;lt;CODE&amp;gt;make&amp;lt;/CODE&amp;gt; rules:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
 ! Command&lt;br /&gt;
 ! Description&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;make package-win32-base&amp;lt;/CODE&amp;gt;&lt;br /&gt;
| Creates a subdirectory named &amp;lt;CODE&amp;gt;vlc-x.x.x&amp;lt;/CODE&amp;gt; with all the binaries &#039;stripped&#039; (that is, smallest size, unusable with a debugger)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;make package-win32-zip&amp;lt;/CODE&amp;gt;&lt;br /&gt;
| Same as above but will package the directory in a zip file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;CODE&amp;gt;make package-win32&amp;lt;/CODE&amp;gt;&lt;br /&gt;
| Same as above but will also create an auto-installer package. You must have NSIS installed in its default location for this to work.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Well done&amp;amp;mdash;you&#039;re ready to use VLC!&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Category:Building]]&lt;/div&gt;</summary>
		<author><name>Galetrouge</name></author>
	</entry>
</feed>