I have a student who’s been asked by a potential industrial supervisor to port his work to Juce (he has it working in Qt5) and build a VST plugin. I have no experience with Juce. I’ve apparently installed the necessary tools on my Debian Stretch laptop.
When I issue the make command in the directory where the Makefile was generated by Producer 4.3.0, I get a load of issues with header files. Taking the first example,
> Compiling juce_audio_formats.cpp
> In file included from ../../../../../../../usr/share/juce/modules/juce_audio_formats/juce_audio_formats.cpp:100:0,
> from ../../JuceLibraryCode/juce_audio_formats.cpp:9:
> ../../../../../../../usr/share/juce/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp:132:23: fatal error: flac/all.h: No such file or directory
This is failing because on my installation, the development deb package for libflac installs all.h to /usr/include/FLAC (upper case). I found out I could disable that audio driver in Projucer, then I get problems with /usr/include/jpeglib.h (Juce is looking for <jpglib/jpeglib.h>, so I can’t even get around it with compiler flags). There are many, many more similar issues
pkgtool is reporting everything correctly. For example:
nick@ariel:~$ pkg-config --libs flac
-lFLAC
so I guess this is a debian packaging problem? Does anybody here use Juce on debian? How do you do it? I am not really prepared to make loads of bogus symlinks all over /usr or /usr/local.
The only reason you’d see that would be if you’ve set JUCE_INCLUDE_FLAC_CODE=0, but by default juce will just encapsulate all the flac code internally, and you don’t need to do or install anything to support it. I’d recommend that if you’re just starting, rather than trying to use the external version of it.
Very happy to use the easiest build method available
However, I haven’t intentionally set that environment variable. I have selected the debug makefile mode. I see the JUCE_INCLUDE_FLAC_CODE in my source tree:
OK, but I can’t see how else you’d get an include error at that line - the file it’s including is a relative path for a file that’s right there inside the juce source tree, it’s not expecting you to have supplied that file, or added any search paths for it or done anything at all for it to find it…
FWIW I’d avoid that, it’s a feature we’ll probably deprecate one day. Best to just use GIT submodules nowadays and not mess around with copies of library files.
So should I start again from your git repo rather than install the debian packages? What I did to get it running was this (from history, including all my typos!):
I can easily git clone stuff instead. The student’s using MacOS and has 4.3.1 anyway. I just find usually that installing the deb pacages is actually the easy way
FWIW, if I change Producer not to copy things locally I just get the same thing:
Compiling PluginProcessor.cpp
Compiling PluginEditor.cpp
Compiling juce_audio_basics.cpp
Compiling juce_audio_devices.cpp
Compiling juce_audio_formats.cpp
In file included from ../../../../../../../usr/share/juce/modules/juce_audio_formats/juce_audio_formats.cpp:100:0,
from ../../JuceLibraryCode/juce_audio_formats.cpp:9:
../../../../../../../usr/share/juce/modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp:132:23: fatal error: flac/all.h: No such file or directory
^
compilation terminated.
Makefile:120: recipe for target 'build/intermediate/Debug/juce_audio_formats_5a29c68a.o' failed
make: *** [build/intermediate/Debug/juce_audio_formats_5a29c68a.o] Error 1
No surprises there I guess.
Having looked around a bit more, I came across the AppConfig.h file. It seems to have all the #defines commented out.
OK, I git cloned and built the Projucer a minimal VST client and host no problems. I’ll email the debian package guy and see what he has to say, otherwise I’ll work in the local cloned directory.
Thank you!
Now I just have to learn how to use it. Can’t be that hard
Built a VST plugin that goes beep (continuously) and ignores MIDI input. Student happy now. He can work out the rest. Glad to hear local industry is using your stuff! Ticket closed