List of Juce dependencies under linux

I had to reinstall a fresh Ubuntu, and therefore grab all the dependancies for Juce…again. So I thought I’d make a little list and share it with you guys, in case it can save someone else’s time …

sudo apt-get -y install g++ sudo apt-get -y install libfreetype6-dev sudo apt-get -y install libx11-dev sudo apt-get -y install libxinerama-dev sudo apt-get -y install libxrandr-dev sudo apt-get -y install libxcursor-dev sudo apt-get -y install mesa-common-dev sudo apt-get -y install libasound2-dev sudo apt-get -y install freeglut3-dev sudo apt-get -y install libxcomposite-dev

You can copy that to a nice shell script and it’s gonna setup all juce dependancies for you.
This is for a fresh installation of Ubuntu 11.10 32 bit, and the latest official juce 1.52. Might work with other versions/distros (debian ?) but it’s not “guaranteed” (as if I was in position to guarantee anything lol :smiley: )
With those installed, you can build and link the library (with the default juce_Config.h) and the demo.

If you need https/ssl support then you also need to install libcurl:

sudo apt-get -y install libcurl4-gnutls-dev

You can enable https/SSL support by clicking on the “juce_core” module in the config tab in the Introjucer and then selecting “ENABLED” on the right hand side under “JUCE_USE_CURL”.

And for ladspa plug-in support you need:

sudo apt-get -y install ladspa-sdk


P.S. : Maybe it should be worth making this post sticky ?


Cool, thanks for the nice list!

It appeared I had to install libxcomposite-dev as well. Don’t know if it’s specific to ubuntu 11.10 though.

Thanks, I edited the original post accordingly

I know Raspian (Debian on a Raspberry pi) isn’t Unbutu, but as a handy reminder for me, I’d add “libxinerama-dev” for buildind X

You have a Juce app running on a Raspberry pi ? :smiley:

Yes, sort of. I hardly had to do anything except read around. Refresh doesn’t seem to be working, and it’s a bit crashy, but it does show the 1st page of JuceDemo.

(Hi, just registered!)
I have Juce running my app well on my Raspberry Pi. I found I had to set JUCE_USE_XINERAMA and JUCE_USE_XSHM to 0 in juce_gui_basics.h.
I found I had to do the same running my app remotely over SSH as well on Linux.
I am in the process of creating a implementation using the GPU (DispManX and OpenGLES) on the PI a little bit the Android one.

1 Like

I’m amazed that you guys could have juce running on a Raspberry pi ! Maybe you could start a new thread about that ? I say that because I know one day, I’ll get one of those toys, and I’ll be very happy to find a thread about “how to build a juce app on Raspberry pi” :smiley:

Don’t forget about xrender :wink:

sudo apt-get install xrender-dev

Is available in debian 7 (testing) and should also be in any other debian derivative.

make that libxrender-dev. here’s a nice one-liner that’ll do it without the need of a shell script.

$ sudo apt-get -y install g++ libfreetype6-dev libx11-dev libxinerama-dev libxcursor-dev mesa-common-dev libasound2-dev libjack-dev freeglut3-dev libxcomposite-dev libxrender-dev

Has it ever been considered to just make deb packages for juce? I took a little time the other day and made a working apt-gettable package(s). It installs the jucedemo, jucer, introjucer, and a copy of the modules into standard Linux dirs. App menu entries are also created and installed. I’m going for as-official-as-possible when it comes to the debian packaging.

For a linux install though, it would be very useful to include shared/static libs with pkg-config files. I started a side project locally which does this. I’m importing juce as a git submodule and building the entire setup using Waf.

it should be noted that after ubuntu 14.04 that libjack-dev actually pulls in JACK1 now (and removes JACK2) - the correct dependency for JACK2 is now libjack-jackd2-dev

but the reason i am actually here is because i am packaging my JUCE based app and trying to figure out which dependencies to require -  the dependencies listed here are for building a JUCE app but does anyone know what are the strict dependencies for running a pre-compiled binary ? for now i am assuming the corresponding non-dev packages of the build-deps but this maybe overkill

If you build a package via PPA the runtime dependencies are added automatically.

But in case you need to know them manually, they are:

libasound2, libfreetype6, libgl1-mesa-glx | libgl1, libx11-6, libxext6, libxinerama1
1 Like

thanks vm for that info - i am finding the learning curve for building deb packages to be a bit steep for my purposes atm - for now i am using this ruby script fpm in a travis.yml script - this builds the deb package with some relatively simplistic params then uploads it to packagecloud all automated - quite nice really for a simple package - but one of the caveats is that you must specify dependencies explicitly or the package will have none

on a fresh install of trisquel 7.0 (an ubuntu derivative), the packages i needed to add in order to compile the Introjucer were:
  * libcurl4-openssl-dev
  * libx11-dev
  * libfreetype6-dev
  * libxrandr-dev
  * libxinerama-dev
  * libxcursor-dev

noticing two dependencies that were not previously mentioned in this thread, i add them here for completeness

Compiling juce_core.cpp
../../../../modules/juce_core/juce_core.cpp:90:26: fatal error: curl/curl.h: No such file or directory
    #include <curl/curl.h>
Compiling juce_gui_basics.cpp
../../../../modules/juce_gui_basics/juce_gui_basics.cpp:110:37: fatal error: X11/extensions/Xrandr.h: No such file or directory
    #include <X11/extensions/Xrandr.h>

here is an updated list of JUCE bulid dependencies:

sudo apt-get install 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

NOTE: as noted in an earlier post, libjack-dev now refers to JACK1 and is mutually exclusive with JACK2 - either one should work fine but one must choose - on my system i already have several packages that depend on JACK2 so i have replaced libjack-dev with libjack-jackd2-dev on this list
NOTE: libxrandr-dev replaces libxrender-dev in this list because libxrender-dev is a dependency of libxrandr-dev


How do i run it on freya?Tried your sticky but it didn't work



Let me just add a link to a more recent post with required Linux dependencies for Ubuntu 14.04 LTS:

Thanks for the update !

apparently the new forum changed all spaces to &nbsp - so here is that list again:

sudo apt-get install 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

Hi All - Here is what just worked for me on Fedora 25:

dnf install alsa-lib-devel
dnf install libXinerama-devel
dnf install freetype-devel
dnf install libcurl-devel
dnf install gcc-c++
dnf install libXcomposite-devel
dnf install freeglut-devel
dnf install libXrandr-devel
dnf install libXcursor-devel