Problems with JUCE-dependency in rt-wdf_renderer-Project on Manjaro

Hi there,

I’m planing on experimenting with the Wave Digital Filter library as described here. I’m running Manjaro-Linux, so I’m on an Arch-based distro.

As an initial step I want to build the linux makefile from the rt-wdf_renderer repository. After following the instructions from the documentation (cloning the repository, installing the dependencies using git submodule init and git submodule update, installing the armadillo-library), when I run make inside /Builds/LinuxMakefile, I get the following errors:

In file included from ../../../Libs/JUCE/modules/juce_graphics/juce_graphics.h:109,
             from ../../../Libs/JUCE/modules/juce_gui_basics/juce_gui_basics.h:55,
             from ../../../Libs/JUCE/modules/juce_audio_processors/juce_audio_processors.h:54,
             from ../../Source/../JuceLibraryCode/JuceHeader.h:21,
             from ../../Source/MainComponent.cpp:15:
../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getAlpha()’:
../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:113:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[3]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  113 | dinline uint8& getAlpha() noexcept           { return comps [indexA]; }
  |                                                       ~~~~~~~~~~~~~^

../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getRed()’:
../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:114:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[2]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  114 | dinline uint8& getRed() noexcept             { return comps [indexR]; }
  |                                                       ~~~~~~~~~~~~~^

../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getGreen()’:
../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:115:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[1]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  115 | dinline uint8& getGreen() noexcept           { return comps [indexG]; }
  |                                                       ~~~~~~~~~~~~~^

../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h: In member function ‘juce::uint8& juce::PixelARGB::getBlue()’:
../../../Libs/JUCE/modules/juce_graphics/colour/juce_PixelFormats.h:116:77: error: cannot bind packed field ‘((juce::PixelARGB*)this)->juce::PixelARGB::<anonymous>.juce::PixelARGB::<unnamed union>::comps[0]’ to ‘juce::uint8&’ {aka ‘unsigned char&’}
  116 | dinline uint8& getBlue() noexcept            { return comps [indexB]; }

As this was already discussed here, I tried to patch the juce_PixelFormats.h-File and the juce_RenderingHelpers.h-File with the code from the developement branch. This “solved” the error-message above, but gave me a series of error-messages so long, that I hesitate to post all of them here. Here are some excrepts:

../../../Libs/JUCE/modules/juce_graphics/colour/juce_Colour.h:121:22: error: expected ‘)’ before ‘argb’
  121 |     Colour (PixelARGB argb) noexcept;

../../../Libs/JUCE/modules/juce_core/memory/juce_LeakedObjectDetector.h:139:15: error: ‘LeakedObjectDetector’ in namespace ‘juce::juce’ does not name a template type
  139 |         juce::LeakedObjectDetector<OwnerClass> JUCE_JOIN_MACRO (leakDetector, __LINE__);


most of them evolving around the juce_LeakedObjectDetector.h-Header.

I haven’t changed anything in the other files, and directely followed the instructions on the libraries github-page. Can anyone see my mistake or have any idea what might be wrong?

I’m fairly new to JUCE, which means it could be a pretty silly mistake. If that’s the case, please forgive me for the noob-question :wink:

Many thanks in advance to anyone who can help me fix this and continue with my project!