Below is a list of the current dependencies required to build JUCE projects on Ubuntu, separated by module. Where the dependency is optional, the preprocessor flag used to disable it is noted.
This has been tested on Ubuntu 16.04 LTS (Xenial Xerus), 18.04 LTS (Bionic Beaver), and 20.04 LTS (Focal Fossa). Packages may differ in name or not be available on other distributions.
A C++ compiler is required. JUCE has been tested thoroughly with Clang and GCC:
sudo apt update
sudo apt install clang
or
sudo apt update
sudo apt install g++
- libasound2-dev
- libjack-jackd2-dev (unless
JUCE_JACK=0
)
- ladspa-sdk (unless
JUCE_PLUGINHOST_LADSPA=0
)
- libcurl4-openssl-dev (unless
JUCE_USE_CURL=0
)
- libfontconfig1-dev (unless
JUCE_USE_FONTCONFIG=0
) - libfreetype-dev (unless
JUCE_USE_FREETYPE=0
)
These packages are available on Ubuntu 22 and 24. If libfreetype-dev is not available you could try installing the libfreetype6-dev package.
- libx11-dev
- libxcomposite-dev
- libxcursor-dev (unless
JUCE_USE_XCURSOR=0
) - libxext-dev
- libxinerama-dev (unless
JUCE_USE_XINERAMA=0
) - libxrandr-dev (unless
JUCE_USE_XRANDR=0
) - libxrender-dev (unless
JUCE_USE_XRENDER=0
)
- libwebkit2gtk-4.1-dev (unless
JUCE_WEB_BROWSER=0
)
On older systems, where 4.1 is not available, you can also use
- libwebkit2gtk-4.0-dev
Compiled JUCE applications will dynamically load whichever library version is available during runtime.
- libglu1-mesa-dev
- mesa-common-dev
The full command is as follows:
sudo apt update
sudo apt install libasound2-dev libjack-jackd2-dev \
ladspa-sdk \
libcurl4-openssl-dev \
libfreetype-dev libfontconfig1-dev \
libx11-dev libxcomposite-dev libxcursor-dev libxcursor-dev libxext-dev libxinerama-dev libxrandr-dev libxrender-dev \
libwebkit2gtk-4.1-dev \
libglu1-mesa-dev mesa-common-dev