I get the following error when trying to compile the basic first vst tutorial:
Compiling include_juce_audio_plugin_client_VST3.cpp
In file included from /home/user/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp:26,
from …/…/JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp:8:
/home/user/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:67:11: fatal error: pluginterfaces/vst2.x/vstfxstore.h: No such file or directory
67 | #include “pluginterfaces/vst2.x/vstfxstore.h”
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [Makefile:146: build/intermediate/Debug/include_juce_audio_plugin_client_VST3_dd633589.o] Error 1
I’ve double checked all the dependencies, distro is Linux Mint 20 Ulyana base: Ubuntu 20.04 focal
It seems like the “replace VST2 with VST3” parts of the code in the juce_audio_plugin_client_VST3.cpp aren’t working properly. I have enough coding experience to see that, but no idea how to go about amending it.
Not sure why I would need that, it should be compiling the most basic audio plugin like the third getting started tutorial instructs. So I guess the issue, is why is it calling that function when it doesn’t need to?
Here is what the juce_CreatePluginFilter.h file contains:
#pragma once
/** Somewhere in the codebase of your plugin, you need to implement this function
and make it return a new instance of the filter subclass that you’re building. /
juce::AudioProcessor JUCE_CALLTYPE createPluginFilter();
// your createPluginFilter() method must return an object!
jassert (pluginInstance != nullptr && pluginInstance->wrapperType == type);
return pluginInstance;
}
} // namespace juce
I’m really lost inside those debugging files though, so not sure which part is calling what and causing the error. I’m hoping it’s like the first bit and there is a setting i need to turn on/off
The contents of juce_CreatePluginFilter.h looks fine and unless you’ve changed it yourself, it shouldn’t be in your way of compiling a plugin.
When you create a new Audio Plug-In project in Projucer, it generates 4 files and adds them to the project: PluginProcessor.cpp, PluginProcessor.h, PluginEditor.cpp, and PluginEditor.h.
If your project is named Tutorial, then PluginProcessor.cpp should end with:
//==============================================================================
// This creates new instances of the plugin..
juce::AudioProcessor* JUCE_CALLTYPE createPluginFilter()
{
return new TutorialAudioProcessor();
}
If you can’t find that code at the end of PluginProcessor.cpp, then you might have removed it by accident.
If that code is there, then PluginProcessor.cpp is maybe not compiled as expected. When looking at the Source folder in Projucer’s “File explorer”, it should be similar to this:
Really appreciate these detailed answers! We’ve found the issue but not the fix yet. I only get three files in my source folder, none of them labelled similar to yours.
feel really guilty for that one, swear my brain read “audio” in the app drop down and stopped there
Thank you for all the help here, really appreciate it. I swear no matter how many languages or frameworks you learn the first day with each one is like your first day with coding, worsened by my lack of attention to details in the tutorials.