Cabbage Logo
Back to Cabbage Site

Help solving errors when compiling Cabbage?

I’m trying to get Cabbage compiling on Windows, but I’m more of a Linux guy, and I’ve never touched Visual Studio before. Currently getting a bunch of error from trying to build the 2.6 release.

I’ve got JUCE v5.4.5 and ASIOSDK2.3, all the things should be in the right places.

It does spit out CabbageCsoundCLI.exe, CabbagePlugin.exe and the CabbagePluginEffect and Synth vst3s, but not Cabbage itself, nor CabbageLite.

Maybe I’m doing something stupid, dunno.
If more info is needed, yell at me, I’ll get you it.

Thanks in advance :slight_smile:

Hmm, strange that it would generate plugins. How are you trying to build it? Are you using the buildCabbage64.bat file? Also, what version of Visual Studio are you using?

Yep, I’m using buildCabbage64.bat. That run right there was done using I’m using VS2019, but when I tried doing it with VS2017, the same files were generated, minus CabbageCsoundCLI.exe, which there was no solution file for in said folder. I’m not sure if the errors were the same, though.

2019 should be fine. I just ran through some of the error you are getting. Some are related to the fact that you don’t have the VST 2.4 SDK installed. If you want to build without those you need to disable them in the Projucer project files. Also, you should be using JUCE 5.4.7. Finally, try building from the develop branch. You might as well get that going from there.

Am I wrong or is the dev branch missing the VS2019 build folder? At least on GitHub, I don’t see it.

Anyhow, I grabbed the VSTSDK 2.4 rev2 from Internet Archive, and put the contents of it in a folder named VST2_SKD next to VST3_SDK, and installed JUCE 5.4.7, but I seem to be getting mostly the same errors when still building 2.6.

Can you try the latest dev branch. I think there might be an issue with the master branch, looks like something got funked up…

Alrighty, I’ve downloaded the develop branch after commit 4de67dc334b989b9f99925471f43013733255f9f, about 30 minutes ago, and it too seems to be missing the VS2019 build folder. So, after trying with VS2017 I got the same stuff as I did previously when trying with VS2017.

Just checking here, is C:\SDKs\VST_SDK\VST3_SDK\ the right location?

Can you show the errors again?

That’s correct, but in order to build VST2.4 you need to put the vst2.x folder into the C:/SDKs/VST_SDK/VST3_SDK/pluginterfaces/ folder.

The 2019 build folder should be created when the Projucer is run. In fact, does the Projucer run OK? You can try launching it on its own and then opening the CabbageIDE.jucer project. Then hit the open in IDE button and it will launch the VS project. You can then build from inside VS.

Alrighty, so I put vst2.x/ inside plugininterfaces/.
Now, when compiling with the VS2017 CMD, the errors are as such.
If you wanna see the entire output: build3.txt (1.8 MB)

Projucer runs just fine, but when I open CabbageIDE.jucer in VS2019, I get this error:

G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\Builds\VisualStudio2019\Cabbage_App.vcxproj : error  : The application for the project is not installed.

And then it doens’t load.
image

If I try to build it using VS2017, I get these errors:

Severity		Code	Description
Error (active)	E1696	cannot open source file "iasiodrv.h"	Cabbage_App	G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\JuceLibraryCode\modules\juce_audio_devices\juce_audio_devices.cpp	118	
Error (active)	E0020	identifier "IASIO" is undefined	Cabbage_App	G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\JuceLibraryCode\modules\juce_audio_devices\native\juce_win32_ASIO.cpp	739	
Error (active)	E0020	identifier "ASIOCallbacks" is undefined	Cabbage_App	G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\JuceLibraryCode\modules\juce_audio_devices\native\juce_win32_ASIO.cpp	740	
Error (active)	E0020	identifier "ASIOClockSource" is undefined	Cabbage_App	G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\JuceLibraryCode\modules\juce_audio_devices\native\juce_win32_ASIO.cpp	752	
Error (active)	E0020	identifier "ASIOBufferInfo" is undefined	Cabbage_App	G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\JuceLibraryCode\modules\juce_audio_devices\native\juce_win32_ASIO.cpp	762	
Error (active)	E0020	identifier "ASIOCallbacks" is undefined	Cabbage_App	G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\JuceLibraryCode\modules\juce_audio_devices\native\juce_win32_ASIO.cpp	1430	
Error			C1083	Cannot open include file: 'iasiodrv.h': No such file or directory (compiling source file ..\..\JuceLibraryCode\include_juce_audio_devices.cpp)	Cabbage_App	g:\05 sparkburst\cabbage source code\cabbage-develop\jucelibrarycode\modules\juce_audio_devices\juce_audio_devices.cpp	118	

With #define JUCE_ASIO 0, it builds and spits out a seemingly functional Cabbage.exe, though! :slight_smile:
So given that I stick to building from within the actual program, it seems like we’re down to the last relevant error, for CabbageIDE, at least.

You will also need to install the ASIO SDK. Dump it into the C:/SDKs folder. The project should be able to find it. Once you have that going, it’s on the plugins. If you can get them all to build through the IDE, you should be in a position to run the build script. :+1:

Yeah, I have that, but maybe C:\SDKs\ASIOSDK2.3\ is not the right placement/name?

Here’s where I put it in the automated build

1 Like

Great, thank you so much! Now, building the only errors I’m getting are

"G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\Builds\VisualStudio2017\CabbageLite.sln" (default target) (1) ->
"G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\Builds\VisualStudio2017\CabbageLite_App.vcxproj" (default target) (2) ->
(ClCompile target) ->
  g:\05 sparkburst\cabbage source code\cabbage-develop\source\standalonelite\standalonepluginholder.h(124): error C2039: 'createPluginFilterOfType': is not a member of '`global namespace'' (compiling source file ..\..\Source\StandaloneLite\StandaloneFilterApp.cpp) [G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\Builds\VisualStudio2017\CabbageLite_App.vcxproj]
  g:\05 sparkburst\cabbage source code\cabbage-develop\source\standalonelite\standalonepluginholder.h(124): error C3861: 'createPluginFilterOfType': identifier not found (compiling source file ..\..\Source\StandaloneLite\StandaloneFilterApp.cpp) [G:\05 SPARKBURST\Cabbage Source Code\cabbage-develop\Builds\VisualStudio2017\CabbageLite_App.vcxproj]

    654 Warning(s)
    2 Error(s)

But frankly, I don’t think I need CabbageLite here.

Now, all I’m wondering is what I need to change to effect the plugin manufacturer metadata of the VSTs Cabbage outputs? And if there’s anything else I ought to do

yeah, you can forget about CababgeLite. You can remove any build instructions for it from the buildCabbage64.bat file. Btw, you still use that script to build everything once the projects are compiling for you.

To change the metadata. modify the appropriate fields in the Projucer files. Note that once you do this the export plugin functions will no longer work in Cabbage as they are tied to this information. So you will need to work with the plugin dll files directly, i.e., testing and building them outside of Cabbage. It is a little awkward, but you should get into the groove soon enough.

1 Like