[vlc-devel] MSVC Compile HOWTO

Steve Lhomme steve.lhomme at free.fr
Tue Mar 29 12:32:46 CEST 2005


As thedj requested a little doc on how to compile VLC using MSVC, here 
it is. It was tested on a source snapshot from 28/03/2005.

The necessary project files for MSVC6 can be found in the "msvc/" 
directory. The project file to load is "vlc.dsw". Newer version of MSVC 
(7 and 7.1) can import MSVC6 project files on load.

On load you might want to set "vlc" as the default project to compile.

By default vlc.exe is build in the "msvc/" directory and the plugins are 
built in "msvc/plugins/" and so will be automatically loaded when you 
run vlc.exe.

By default no plugin is compiled. You need to select them by yourself. 
Either by adding dependencies to the "vlc" project (like "vlc" depends 
on "plugin_dummy") or build them manually (when you select one as your 
startup project for example).

Depending on the plugin you might need to adjust the library and include 
paths of the project or MSVC to find the matching library (for example 
"plugin_mkv" uses libebml and libmatroska).

Some plugins might not build on MSVC too (for example if they depend on 
gcc-only libraries) like "plugin_ffmpeg". This is a major drawback as 
without ffmpeg, you can't decode much formats. I managed to compile it 
using a libavcodec.dll that I built on Linux, then generating the .lib 
corresponding to this DLL to be used when linkling "plugin_ffmpeg". But 
it doesn't work well and I don't remember how I generated this DLL. Note 
that the ones you find with FFDShow won't work. If needed I could make 
my DLL and LIB available.

I didn't manage to compile a working "plugin_wxwindows" with MSVC. SO 
I'm using a pre-built version from the nightly builds. I had to change 
the texts in msvc/config.h like this (ot match the date of the nightly 
build) :

#define MODULE_SUFFIX "__0_8_2_svn_20050301"
#define MODULE_SYMBOL 0_8_2_svn_20050301
#define PACKAGE_STRING "vlc 0.8.2-svn-20050301"
#define PACKAGE_VERSION "0.8.2-svn-20050301"
#define VERSION "0.8.2-svn-20050301"
#define VERSION_MESSAGE "0.8.2-svn-20050301 Janus"

Some of them might not be needed, but it works for me...

robUx4 on blog <http://robux4.blogspot.com/>

This is the vlc-devel mailing-list, see http://www.videolan.org/vlc/
To unsubscribe, please read http://developers.videolan.org/lists.html

More information about the vlc-devel mailing list