Linker error while making VST2 plugin


I have a plugin project that I’m coding in JUCE that compiles and runs fine as a VST3 plugin and as a standalone.

I recently noticed that I have one VST2 plugin that crashes when i try to open its editor alongside any VST3 plugins in my plugin host, so i wanted to try and compile my plugin project for VST2 instead. However, when i tried to compile it i got the following linker error:

/usr/bin/ld: build/intermediate/Debug/include_juce_audio_plugin_client_VST2_dd551e08.o: in function `JuceVSTWrapper::handleManufacturerSpecific(JuceVSTWrapper::VstOpCodeArguments)':
/home/johnny/.JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:1867: undefined reference to `juce::handleManufacturerSpecificVST2Opcode(int, long long, void*, float)'
collect2: error: ld returned 1 exit status

This doesn’t seem to be an issue with my code… what can i do to fix this ? I had a look in the audio_plugin_client module in the projucer and i couldn’t find anything that seemed relevant.

Thanks <3

Edit: My JUCE version is v6.0.8. and i’m running on manjaro linux. I simply ran make VST in the Builds/LinuxMakefile directory of the project, without editing the makefile. make VST3 works, though.

Did you make clean before running make again when you enabled VST support? If not, I’d recommend trying that out. It’s possible juce_audio_plugin_client_utils.cpp didn’t rebuild after enabling the JucePlugin_Build_VST preprocessor definition, in which case the undefined function would not be present.

Thanks, yep, that worked :slightly_smiling_face: sadly even the VST2 version crashed when used with my other plugin so, i’ll have to figure out what’s going on there, but thank you for your help on this <3