I just downloaded JUCE tonight and ended up with the same kind of errors as yours.
I figured out what the problem is. The “…/…/…/” style is indeed the cause of it.
The reason is it’s breaking your OS maximum path name length limitation (260 chars for Win XP as explained here).
That is why relative include directives has always been a bad habit. Because at some point you are ending up with “Some/included/files/…/…/which/include/…/…/some others/…/…/…/and/so/on/…/…/…”. You can see it can easily break the limitation. Have a try with JUCE. Juste put it in your root directory (/ or C:) and it will compile fine. Put it in a 6 level subdirectory with a few long names it will break.
It should be replaced with a fully specified path configured by a configure script or a preprocessor directive I think.
I must admit I am a bit disappointed to find such an ugly mistake here. I hope it will be fixed ASAP so I can use JUCE :).[/quote]
Ugly mistake??? Relative paths are the cleanest, most portable way of doing this. Using a configure script, or making every user set up their own include paths would be ugly.
The “ugly mistake” was when the compiler writers didn’t actually bother parsing the filename, but just concatenated the whole thing together and copied it to a fixed-length array without even showing a sensible error message when it was too long. No way am I going to make my code less elegant because of such a dumb-ass mistake (which is fixed in all the decent compilers anyway).
(And of course if they’d been using juce::File they’d never have had the problem in the first place…)