VST3 SDK 3.6.13 build errors

Steinberg released 3.6.13 on Monday. I’ve pulled the latest Juce from dev. When trying to build in VS2017 I get the following errors:

4>c:\users\joema\developer\juce\modules\juce_audio_processors\format_types\juce_vst3headers.h(148): error C2374: 'iid': redefinition; multiple initialization
4>c:\users\joema\developer\sdks\vst3_sdk\pluginterfaces\base\coreiids.cpp(24): note: see declaration of 'iid'
4>c:\users\joema\developer\juce\modules\juce_audio_processors\format_types\juce_vst3headers.h(154): error C2374: 'iid': redefinition; multiple initialization
4>c:\users\joema\developer\sdks\vst3_sdk\pluginterfaces\base\coreiids.cpp(25): note: see declaration of 'iid'
4>c:\users\joema\developer\juce\modules\juce_audio_processors\format_types\juce_vst3headers.h(155): error C2374: 'iid': redefinition; multiple initialization
4>c:\users\joema\developer\sdks\vst3_sdk\pluginterfaces\base\coreiids.cpp(26): note: see declaration of 'iid'
4>c:\users\joema\developer\juce\modules\juce_audio_processors\format_types\juce_vst3headers.h(156): error C2374: 'iid': redefinition; multiple initialization
4>c:\users\joema\developer\sdks\vst3_sdk\pluginterfaces\base\coreiids.cpp(27): note: see declaration of 'iid'
2 Likes

Aaaaaand I’m now realizing JUCE has the vst3 sdk already embedded and I didn’t need to add it manually and of course everything builds ok with that version 3.6.12. All is well. :+1:

2 Likes

Hmm same problem here, when trying to compile with external SDK. When not specifying an external one (i guess just leave the field empty? There’s no explicit switch), build fails as well because vsttypes.h is not found.

When using the external SDK, commenting out lines 138 and 145-147 in juce_VST3Headers.h makes the build work, but obviously that’s not the way it should be … not sure what’s wrong here ?

2 Likes

The external VST3_SDK path can creep in from two sources, in the exporter and in the global paths. They both need to be empty in order to use the JUCE internal headers.

Maybe that’s the culprit?

1 Like

So far i only know the exporter path, where can i find the global one ? On a sidenote, it’s fairly confusing that the path in the exporter menu is never really “empty”, but shows the grayed-out default path …

1 Like

The global VST3 SDK path is under File > Global Paths...

1 Like

Correction: on macOS, it’s under Projucer->Global Paths. And that does actually point to the external SDK. Thank you so much for that info !

2 Likes

Oops, I forgot about that OS :smile:

This should be a tick box in each project, ‘use built in JUCE SDK’. Otherwise global settings could override a project that previous built using local settings:

  • developer sets up project that builds with embedded vst3 sources
  • developer 2 opens up project on system with global path set
  • developer 2 gets a build error.

not exactly a portable one click build…

3 Likes