Introduction - License - Installation - Building with Visual Studio - Building with VC6 - Building with XCode - Building on Linux - Building with Android -
JUCE is an all-encompassing C++ class library for developing cross-platform applications and plugins.
For lots more help and information, please visit the JUCE website.
A complete set of class documentation is available here.
JUCE is released under the Gnu Public License, which means it can be freely copied and distributed, and costs nothing to use in open-source applications.
If you'd like to release a closed-source application that uses JUCE, commercial licenses are available for a fee - click here for more information on pricing and terms.
There are a few ways to install a copy of JUCE:
git clone --depth 1 git://juce.git.sourceforge.net/gitroot/juce/juce
The JUCE source code all lives in a folder called, unsurprisingly, juce
, which you can unzip
and put somewhere on your system.
In the juce/extras
folder, there are a few demo apps to get you started and to show off JUCE's features.
Each one contains a folder called Builds
, containing various projects for different compilers and platforms.
These should all work straight out-of-the-box if you load them into the appropriate development environment. Some of them
(e.g. the audio plugin demo) may require 3rd party libraries or headers to have been installed, but I've made sure that any
include statements that may not be present have comments with a detailed explanation of what's going on, so if you hit a compile
error, just have a look at the code it's pointing to and everything should become clear.
By far the easiest way to create a new cross-platform JUCE app (or audio plugin) is to let the Introjucer do the hard work of creating all your projects with the correct settings.
You can either build the Introjucer yourself from the source (in juce/extras/Introjucer
), or download
a pre-built binary from SourceForge.
If you run it and select the 'new project' menu item, it'll walk you through the stages in setting up an app or plugin project, and will automatically spit out a collection of project files for all the different platforms and compilers that you need.
JUCE projects should build and run with no extra set-up needed in all versions of Visual Studio from 2005 onwards.
By far the easiest way to create a new project is by letting the Introjucer do all the hard work, as explained above. But if you really insist on creating one manually, here are a few tips:
JUCEApplication
class to find out how to create the application launch code.JUCE can still be compiled with VC6, although support for this will be dropped at some point in the future... but here are some tips for getting it going:
C:\Program Files\Microsoft Platform SDK\include C:\Program Files\Microsoft Platform SDK\include\crt C:\Program Files\Microsoft Platform SDK\include\mfc C:\mycode\juce ...And the library search path should begin like this:
C:\Program Files\Microsoft Visual Studio\VC98\LIB C:\Program Files\Microsoft Platform SDK\lib C:\mycode\juce\bin ...
Note that there's a rather lame bug in VC6 that causes an internal compiler error if you include filenames that are too long. This can get triggered if you put the juce folder in a deeply-nested directory (such as your user home directory). Unfortunately I think the only workaround for this is to move the source tree to a shallower directory.
Use XCode 3 or later. You might want to tick the option to install the 10.4 SDK if you want to build binaries that are backward-compatible with 10.4 and PPCs. If you're going to build for iOS, you'll obviously need the iOS version of XCode.
The easiest way to create a new application is by using the Intojucer, but here are a few tips if you're mad enough to want to set one up manually:
Cocoa.framework Carbon.framework IOKit.framework CoreAudio.framework CoreMIDI.framework WebKit.framework DiscRecording.framework QTKit.framework QuickTime.framework QuartzCore.framework AudioUnit.framework AudioToolbox.framework OpenGL.framework AppKit.framework CoreAudioKit.framework CoreFoundation.frameworkIn future there may be other frameworks that you'll need to link with to support new JUCE features. (It should be pretty obvious from the link-time error when one of these is missing).
juce.xcodeproj
file into your project's "External Frameworks and Libraries" list. Then, expand this
item in the treeview, and inside there'll be an item "libjuce.a" or "libjucedebug.a" - drag-and-drop
this into the "link binary with libraries" phase inside the xcode target. When you select either a debug
or release juce build these entries will (usually) update themselves to show the correct debug or release library
name. If you want your project to automatically rebuild JUCE when you make changes to a JUCE file, you can
also add JUCE to your target's "Direct Dependency" list (show information for the target, and this is on the
"general" tab).Most linux distros should come with the tools you need. You may need to install the development packages of freetype, X11 and pthreads if they're not already available.
If you've enabled the JUCE_USE_XINERAMA
option, then you'll also need to install the Xinerama package.
And you'll need the GL
and GLU
libraries if you've enabled JUCE_OPENGL
The makefiles that are generated by the Introjucer can be run by "make CONFIG=Debug
",
or "make CONFIG=Release
". You can also use "make clean
" to delete the
intermediate files.
ant debug
" or "ant release
"***