fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fluid-dev] building FluidSynth 1.0.8 on Windows XP with VC++ 2008 Expre


From: Peter Howard
Subject: [fluid-dev] building FluidSynth 1.0.8 on Windows XP with VC++ 2008 Express Edition
Date: Wed, 26 Mar 2008 05:37:05 -0000

I just succeeded in building FluidSynth 1.0.8 on Windows XP with VC++ 2008
Express Edition. (At the time of writing, this is the most recent free
version of the compiler from Microsoft).

It took some fiddling about - so in the hope that it will benefit others
here's what I did:

1) Unpacked fluidsynth source

2) Downloaded and installed MS VC++ 2008 Express Edition from:
http://www.microsoft.com/express/download/

3) Double clicked on ... fluidsynth-1.0.8\winbuild\fluidsynth.sln ...

This launched VC++ 2008, with a solution conversion wizard. The wizard said
the solution file was from an earlier version of VC++, but that it could
automatically upgrade the solution and project files. So I let it do that
and it then loaded the solution ok.

4) I worked on the 'release' configuration by selecting this option in the
build->configuration manager menu.

5) I then repeatedly tried to build the solution from the build->solution
menu - overcoming a series of problems until it worked as detailed below:

6) First of all, rather bizarrely, it wouldn't compile the stock stdio.h,
producing this:

C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(358) :
error C3163: '_vsnprintf': attributes inconsistent with previous declaration
C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h(350) :
see declaration of '_vsnprintf'

The line that stimulates the problem in stdio.h is this declaration:

__DEFINE_CPP_OVERLOAD_STANDARD_NFUNC_0_2_ARGLIST_EX(int,
RETURN_POLICY_SAME,_CRTIMP, _snprintf, _vsnprintf, _Pre_notnull_
_Post_maybez_ char, _Out_cap_(_Count) _Post_maybez_, char, _Dest, _In_
size_t, _Count, _In_z_ _Printf_format_string_ const char *, _Format)

Microsoft say in their release notes for VC 2008 Express Edition, that they
have added a bunch of security checks in the std library and provide some
ideas of how to get round them if they pose problems - but I couldn't find a
'polite' solution among the compiler options etc.

However, if you simply remove the offending declaration from stdio.h it will
then compile, without any apparent knock-on problems.

7) The next problem is that the compiler cannot find dsound.h in the
standard header file locations.

This is largely because it simply doesn't exist in VC 2008 Express Edition.
It's part of the DirectX sub system - which doesn't ship with VC any more
(it did with earlier versions apparently). However there is a remedy - there
is a separate free download from MS of the DirectX SDK which includes it.
You get this from:
http://www.microsoft.com/downloads/details.aspx?FamilyId=572BE8A6-263A-4424-
A7FE-69CFF1A5B180&displaylang=en (a mere 400Mb).

Once you have installed this SDK the solution compiles and builds to
completion - albeit with a blizzard of warning messages.

It made me feel better to set the compiler warning level to turn off all
warnings for each sub project: project->properties->C/C++->general->warning
level. (I like the illusion that all is well.)

I hope this helps.

Pete






reply via email to

[Prev in Thread] Current Thread [Next in Thread]