Cabbage Logo
Back to Cabbage Site

Problems with compiling Cabbage on Ubuntu 16.10

I have problems with installing Cabbage on Ubuntu 16.10 with KXStudio installed on top of it.

First question: Do I also need the dependencies required to build for the JUCE framework?
Those are:

freeglut3-dev
g++
libasound2-dev
libcurl4-openssl-dev
libfreetype6-dev
libjack-jackd2-dev
libx11-dev
libxcomposite-dev
libxcursor-dev
libxinerama-dev
libxrandr-dev
mesa-common-dev

As I have already installed these I moved forward to compiling the latest csound (I have downloaded it with git, probably from the master branch). I followed the build instructions for csound and got it compiled and installed.
I then ran ./getdeps.sh and double-checked I had everything which is listed in the readme.

Now I have installed both csound from the repo and from the version compiled earlier. However, this should not be a problem as I am using the local path.
Do I need csound-utils to be installed from the repo or is the compiled version already sufficient?

Then I clone the repo from Github using
git clone https://github.com/rorywalsh/cabbage.git
cd ~/cabbage/ and then
git checkout

Inside the folder ~/cabbage/Builds/Linux I have run:
./buildCabbage "/usr/local/include/csound/" "/usr/local/lib/" "/home/temrix/SDKs/VST3SDK/"

I get these errors:

In file included from ../../JuceLibraryCode/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp:138:0, from ../../JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.cpp:100: ../../JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c: In function ‘int juce::FlacNamespace::FLAC__lpc_quantize_coefficients(const FLAC__real*, unsigned int, unsigned int, juce::FlacNamespace::FLAC__int32*, int*)’: ../../JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c:213:20: error: call of overloaded ‘lround(juce::FlacNamespace::FLAC__double&)’ is ambiguous q = lround(error);
2.
In file included from ../../JuceLibraryCode/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp:138:0, from ../../JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.cpp:100: ../../JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c: In function ‘long int juce::FlacNamespace::lround(double)’: ../../JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c:60:39: error: ‘long int juce::FlacNamespace::lround(double)’ conflicts with a previous declaration static inline long int lround(double x) {

MakefileHost:357: the rule for the target „build/intermediate-host/Release/juce_audio_formats_d349f0c8.o“ failed make: *** [build/intermediate-host/Release/juce_audio_formats_d349f0c8.o] Fehler 1


Then there are the same two errors and finally it says MakefileHost:357: the rule for the target „build/intermediate-host/Release/juce_audio_formats_d349f0c8.o“ failed make: *** [build/intermediate-host/Release/juce_audio_formats_d349f0c8.o] Fehler 1

and that it cannot find ./build/Cabbage

I don’t have any clue why the errors happen as the flac library should be included into the juce folders. I have a lot of warnings like /usr/local/include/csound/csoundCore.h:87:0: warning: "OK" redefined #define OK (0).

Just say if you want to see the full output.

I think it’s because of the new version of GCC in Ubuntu 16.10. As a workaround you could open “./JuceLibraryCode/modules/juce_audio_formats/codecs/flac/libFLAC/lpc_flac.c” inside a text editor, search for line 60 and replace its contents with this:
static inline long int jlround(double x) {

Let us know how it goes. Cheers.

EDIT: Source (https://forum.juce.com/t/compilation-problem-on-fedora-24/18215/3)

The workaround did it. I had some problems though with the VST path. Although providing it in ./buildCabbage with VST3SDK and renaming the folder, it did not work. At the end, only VST3\ SDK worked.

I had some problems with the documentation building but I could resolve this by installing the latest version (Edit: of nodejs) from a PPA. Thanks for the help and I gotta know explore the huge instruments library and build some awesome tools!