So let me first caveat this by saying, I’m not a coder, I’m a hardware engineer who can ‘hack code’
However I’m working with someone who is a coder and using JUCE.
I’m struggling to get the JUCE app to compile for the elkOS on the raspberry pi. I am using a virtualbox ubuntu machine to do the compiling (it just takes forever on the pi)
I’ve installed the elkOS dev kit, built ProJucer from the elk fork, installed the VST 24 SDK (yes agreement is in place) and I can open a test app (simple sinewave) in ProJucer and then ‘save’ it to create the make files. This where things go wrong.
I’ve followed the section under making the app for the pi and done these -
$ make AR=arm-elk-linux-gnueabi-ar make -jnproc CONFIG=Release CFLAGS=“-DJUCE_HEADLESS_PLUGIN_CLIENT=1” TARGET_ARCH=“-mcpu=cortex-a53 -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard”
But, what I get is erors;
Package x11 was not found in the pkg-config search path.
Perhaps you should add the directory containing x11.pc' to the PKG_CONFIG_PATH environment variable No package 'x11' found Package xinerama was not found in the pkg-config search path. Perhaps you should add the directory containing xinerama.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘xinerama’ found
Package xext was not found in the pkg-config search path.
Perhaps you should add the directory containing xext.pc' to the PKG_CONFIG_PATH environment variable No package 'xext' found Package webkit2gtk-4.0 was not found in the pkg-config search path. Perhaps you should add the directory containing webkit2gtk-4.0.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘webkit2gtk-4.0’ found
Package gtk±x11-3.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk±x11-3.0.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘gtk±x11-3.0’ found
make: *** No rule to make target ‘make’. Stop.
now, I thought this was to build a headless version? so I’m baffled why the makefile is referencing a bunch of X11 bits (here’s the content of the make file)
Package x11 was not found in the pkg-config search path.
Perhaps you should add the directory containing x11.pc' to the PKG_CONFIG_PATH environment variable No package 'x11' found Package xinerama was not found in the pkg-config search path. Perhaps you should add the directory containing xinerama.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘xinerama’ found
Package xext was not found in the pkg-config search path.
Perhaps you should add the directory containing `xext.pc’
to the PKG_CONFIG_PATH environment variable
No package ‘xext’ found
make: *** No rule to make target ‘make’. Stop.
So, I think I’m winning…
There is a module called “Juce_Graphics”, but if I remove that a number of things complain So I’ll have to speak with my coding partner.
Ensure in Juce that copy mode was not set for all modules - if it is and you used a previous version of juce it is still referencing the old, non Elk modules
juce_graphics should not be an issue since it is the one that we custom patch in the fork.
I suspect there’s some other module that brings in the X11 dependency in your case. Is it possible for you to share the Projucer file so we can take a look?
I followed all the instructions at elkpi-sdk-master in running_docker_container_on_macos.md. I got the JUCE fork from elk-audio/JUCE. I compiled the Xcode project then the app. I run the app, about reports v5.4.5. I checked out elk-audio/elk-examples. I double checked all the settings required. In addition to that, I unchecked Create Local Copy as suggested above in this post.
I went to Docker Quickstart Terminal and opened window. I followed all instructions for MacOs. When I connect in finder via Samba the Guest credentials did not work. I copied the project files to the docker container however like this:
docker cp foo.txt mycontainer:/foo.txt
docker cp mycontainer:/foo.txt foo.txt
After copying the JUCE source files to the docker container, going to the linux build folder, I get these errors when entering make:
sdkuser@85fb9c80a5be:/workdir/code/elk_juce_example/Builds/LinuxMakefile$ make
Package x11 was not found in the pkg-config search path.
Perhaps you should add the directory containing `x11.pc'
to the PKG_CONFIG_PATH environment variable
No package 'x11' found
Package xinerama was not found in the pkg-config search path.
Perhaps you should add the directory containing `xinerama.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xinerama' found
Package xext was not found in the pkg-config search path.
Perhaps you should add the directory containing `xext.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xext' found
Compiling include_juce_audio_plugin_client_VST2.cpp
**arm-elk-linux-gnueabi-g++:** **error:** unrecognized -march target: native
**arm-elk-linux-gnueabi-g++:** **note:** valid arguments are: armv2 armv2a armv3 armv3m armv4 armv4t armv5 armv5t armv5e armv5te armv5tej armv6 armv6j armv6k armv6z armv6kz armv6zk armv6t2 armv6-m armv6s-m armv7 armv7-a armv7ve armv7-r armv7-m armv7e-m armv8-a armv8.1-a armv8.2-a armv8.3-a armv8.4-a armv8-m.base armv8-m.main armv8-r iwmmxt iwmmxt2
**arm-elk-linux-gnueabi-g++:** **error:** missing argument to ‘ **-march=** ’
Makefile:151: recipe for target 'build/intermediate/Debug/include_juce_audio_plugin_client_VST2_dd551e08.o' failed
make: *** [build/intermediate/Debug/include_juce_audio_plugin_client_VST2_dd551e08.o] Error 1
If I compile with the instructions shown here, I get:
sdkuser@669c56454d73:/workdir/code/elk_juce_example/Builds/LinuxMakefile$ AR=arm-elk-linux-gnueabi-ar make -j`nproc` CONFIG=Release CFLAGS="-DJUCE_HEADLESS_PLUGIN_CLIENT=1" TARGET_ARCH="-mcpu=cortex-a53 -mtune=cortex-a53 -mfpu=neon-vfpv4 -mfloat-abi=hard"
Package x11 was not found in the pkg-config search path.
Perhaps you should add the directory containing `x11.pc'
to the PKG_CONFIG_PATH environment variable
No package 'x11' found
Package xinerama was not found in the pkg-config search path.
Perhaps you should add the directory containing `xinerama.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xinerama' found
Package xext was not found in the pkg-config search path.
Perhaps you should add the directory containing `xext.pc'
to the PKG_CONFIG_PATH environment variable
No package 'xext' found
Compiling include_juce_audio_plugin_client_VST2.cpp
In file included from **../../JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:36** ,
from **../../JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp:27** ,
from **../../JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp:9** :
**../../JuceLibraryCode/modules/juce_audio_plugin_client/VST/../utility/juce_IncludeSystemHeaders.h:44:11:** **fatal error:** X11/Xlib.h: No such file or directory
#include **<X11/Xlib.h>**
**^~~~~~~~~~~~**
compilation terminated.
Makefile:151: recipe for target 'build/intermediate/Release/include_juce_audio_plugin_client_VST2_dd551e08.o' failed
make: *** [build/intermediate/Release/include_juce_audio_plugin_client_VST2_dd551e08.o] Error 1
sdkuser@669c56454d73:/workdir/code/elk_juce_example/Builds/LinuxMakefile$
Things I will try: compile on the ElkPi board, try a VST3 without JUCE.
Hi @toani,
have you checked that you are using the mind/headless_plugin_client-next branch in the JUCE fork?
This looks like the same issue that Paula had, from your logs it seems that the original JUCE version (master branch) is used instead than the headless one.