Is VST3 SDK compatible with MingW?


#1

Hi,

I'm trying to build juce_audio_processors with VST3 hosting enabled in mingw, but I have lots of errors here.

Here's the full log: http://kxstudio.sourceforge.net/Paste/repo/EvXva

 

Should I give up on trying to build vst3 stuff with mingw?

 


VST3 plugin with Code::Blocks (Windows)
#2

After patching the vstsdk a little and using "-DUNICODE_OFF -fpermissive" I was able to reduce the errors.

Still, I have these: http://kxstudio.sourceforge.net/Paste/repo/rHD3i

Mostly related to juce now.

 


#3

and got it to build!

 

Jules, here's the needed changes for vst3 hosting with mingw:

https://github.com/falkTX/Carla/commit/2a7accd6a637eeb1a17d4bae5d193bc684a444c0

 

needed changes in the vstsdk here:

http://kxstudio.sourceforge.net/Paste/repo/GMOVw


#4

Ok.. I'll add the changes to the cpp/h files. The makefile is auto-generated though - I can't add a line to that directly.

Good luck getting Steinberg to update their SDK!


#5

..no.. actually, looking at what you changed, I think using .copyTo16 would make no sense. If you look at their copyTo() function, it's clearly written that way to handle differences in whether the UNICODE flag is set. If you hard-code a call to copyTo16, it'll break depending on the flag. Perhaps just setting that flag appropriately would be all that's needed to make it all work?


#6

I can try to make it work with unicode on, but there are a lot of weird errors when doing so.

 

without the copyTo16(), the error I get is:

no known conversion for argument 1 from 'Steinberg::Vst::TChar* {aka wchar_t*}' to 'Steinberg::tchar* {aka char*}'

#7

oh, actually, this was simpler than I though.

 

using these build flags and "#if 0" the msvc exception code in fthread.cpp and I'm able to build it:

-D_NATIVE_WCHAR_T_DEFINED -D__wchar_t=wchar_t -fpermissive

now the copyTo16() hack is not needed. but the PLUGIN_API addiiton to juce is still required.

 

I really don't like the "-fpermissive" in there, but not much I can do I guess...

 


#8

Thanks falkTX.


#9

Are you able to load a vst3 plugin created with these settings?

I was able to compile the Juce DemoPlugin with CodeBlocks and above switches. The vst2 DLL is running fine in all hosts, the same file with the .vst3 extension is either not detected or not loaded by Reaper and Cubase. No error message or crash...


#10

Good luck getting Steinberg to update their SDK!

Github Issue: Steinberg Official

Looks like they might actually get a fix for MingW


#11

There are signs and wonders - that nobody can deny or ignore.