Problems compiling latest Juce lib on Windows


#1

just a heads up.

Visual Studio is complaining about the imapi.h file (“Cannot open include file”) with the latest SVN of Juce. I noticed that -trunk/build/win32/platform_specific_code/juce_win32_AudioCDReader.cpp
has been updated to include this file. Also my old Windows dev machine is complaining about it too now.

Is that located in “c:\Program Files\Microsoft SDKs\Windows\v6.0\Include”

When I explicitly include the file I get about 30 Errors in “c:\program files\microsoft sdks\windows\v6.0\include\ocidl.h”.


#2

Use the lastest Platform SDK.

HTH


#3

Thanks.
Intalling latest now.


#4

I was having the same issue, and after installing the latest SDK (version 6.1, for Windows Server 2008), I have multiple compiler issues with the intrin.h. I’m now downloading SP1 for Visual Studio (professional edition), but I don’t know if that will fix it. Is there anything else that could be wrong?

With 1.45, I didn’t have to do anything with my VS configuration to do a build.


#5

That is not a problem with JUCE; that’s a conflict between Visual Studio header files and the SDK header files.

It is easy to fix; you just need to edit the header file so that the declarations are the same as in the other header file with the conflicting declarations. If I remember right, you just need to add the volatile keyword in a few places.


#6

From: http://www.thescripts.com/forum/thread656230.html

[i]There are 2 conflicting declarations of _interlockedbittestandset.

In intrin.h the first argument is long *
In WinNT.h the first argument is long volatile *

I’m not sure which declaration is correct but my solution was to edit
intrin.h and add the volatile keyword.[/i]

I did just that, and it worked.


#7

by the way, move to vC2005. It’s free.
VC6 is way too old.


#8

I am on Visual Studio 2005.
Does the fix above make sense?

Thanks.


#9

I just switched to VC++ 2008, and that seemed to fix whatever problems I was having. Can’t be arsed to try to fix it in 2005.


#10

Humm I didn’t had any issue, but I’m using the Microsoft Platform SDK for Windows Server 2003 R2.

Your fix looks good though.


#11

Yes with the older SDK VS2005 works fine. Platform SDK 6.0 and above breaks 2005 for some reason, on all my machines. VC++ 2008 Express also works. When time comes Ill get the new Visual Studio…