mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
220 lines
13 KiB
HTML
220 lines
13 KiB
HTML
<?xml version="1.0" encoding="windows-1250"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
|
|
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
<meta http-equiv="Content-Language" content="en-us" />
|
|
<meta name="description" content="Raw Material Software" />
|
|
<meta name="keywords" content="audio, music, juce, tracktion, c++, sequencer, library, programming, software, julian storer$otherkeywords" />
|
|
<meta name="robots" content="index,follow" />
|
|
<title>JUCE - installation and compiling</title>
|
|
<link href="rawmat.css" rel="stylesheet" type="text/css" media="all" />
|
|
</head>
|
|
|
|
<body>
|
|
<div class="pageholder">
|
|
|
|
<div class="banner">
|
|
<a href="http://www.rawmaterialsoftware.com">
|
|
<img src="images/rms_logo.gif" alt="raw material software" title="raw material software"/></a>
|
|
</div>
|
|
|
|
<p><a href="#intro">Introduction</a> - <a href="#license">License</a> -
|
|
<a href="#install">Installation</a> -
|
|
<a href="#buildvc">Building with Visual Studio</a> -
|
|
<a href="#buildvc6">Building with VC6</a> -
|
|
<a href="#buildxcode">Building with XCode</a> -
|
|
<a href="#buildlinux">Building on Linux</a> -
|
|
<a href="#buildandroid">Building with Android</a> -
|
|
</p>
|
|
|
|
<h1>JUCE</h1>
|
|
|
|
<h2><a name="intro"></a>Introduction</h2>
|
|
|
|
<p>JUCE is an all-encompassing C++ class library for developing cross-platform applications and plugins.</p>
|
|
<p>For lots more help and information, please visit the <a href="http://www.rawmaterialsoftware.com/juce">JUCE website</a>.</p>
|
|
<p>A complete set of class documentation is available <a href="http://www.rawmaterialsoftware.com/juce/api/index.html" target="juce api">here</a>.</p>
|
|
|
|
<h2><a name="license"></a>License</h2>
|
|
|
|
<p>JUCE is released under the <a href="http://www.gnu.org/copyleft/gpl.html">Gnu Public License</a>,
|
|
which means it can be freely copied and distributed, and costs nothing to use in open-source applications.</p>
|
|
<p>If you'd like to release a closed-source application that uses JUCE, commercial licenses are available
|
|
for a fee - click <a href="http://www.rawmaterialsoftware.com/jucelicense.php">here</a> for more information
|
|
on pricing and terms.</p>
|
|
|
|
<h2><a name="install"></a>Installation</h2>
|
|
|
|
<h3>Installing the source code</h3>
|
|
|
|
<p>There are a few ways to install a copy of JUCE:</p>
|
|
<ul>
|
|
<li>You can download a zip file containing the last stable release from <a href="http://sourceforge.net/projects/juce/files/juce/">the JUCE downloads section on SourceForge</a></li>
|
|
<li>Download the GIT repository: To grab the latest bleeding-edge version of the code, you can use the command:
|
|
<br><code>git clone --depth 1 git://juce.git.sourceforge.net/gitroot/juce/juce</code></li>
|
|
<li>Download via the Introjucer: The Introjucer is JUCE's tool for creating and managing JUCE projects, and it also
|
|
includes a handy tool which lets you download the latest (bleeding-edge) version of JUCE without needing to install GIT. To use this,
|
|
just download a binary of the Introjucer from <a href="http://sourceforge.net/projects/juce/files/juce/">SourceForge</a>,
|
|
and run it - its 'update' menu contains an option to download JUCE.</li>
|
|
</ul>
|
|
<p>The JUCE source code all lives in a folder called, unsurprisingly, <code>juce</code>, which you can unzip
|
|
and put somewhere on your system.</p>
|
|
|
|
<h3>Building the demo applications</h3>
|
|
|
|
<p>In the <code>juce/extras</code> folder, there are a few demo apps to get you started and to show off JUCE's features.
|
|
Each one contains a folder called <code>Builds</code>, 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.</p>
|
|
|
|
<h2>Creating a new application with the Introjucer</h2>
|
|
|
|
<p>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.</p>
|
|
<p>You can either build the Introjucer yourself from the source (in <code>juce/extras/Introjucer</code>), or download
|
|
a pre-built binary from <a href="http://sourceforge.net/projects/juce/files/juce/">SourceForge</a>.
|
|
<p>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.</p>
|
|
|
|
<h1>Requirements for building on different platforms</h1>
|
|
|
|
<h3><a name="buildvc"></a>Microsoft Visual Studio 2005 or later</h3>
|
|
|
|
<p>JUCE projects should build and run with no extra set-up needed in all versions of Visual Studio from 2005 onwards.</p>
|
|
|
|
<p>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:</p>
|
|
<ol>
|
|
<li>Create your new application project as an 'empty' WIN32 application - avoid saying yes to
|
|
MFC or any of the other rubbish that Visual Studio might offer you.</li>
|
|
<li>Make sure that your project has exception handling and run-time type information (RTTI) turned ON.</li>
|
|
<li>Have a look at the example projects, demo projects, or the API documentation about the
|
|
<code>JUCEApplication</code> class to find out how to create the application launch code.</li>
|
|
</ol>
|
|
|
|
<h3><a name="buildvc6"></a>Microsoft Visual Studio 6</h3>
|
|
|
|
<p>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:</p>
|
|
|
|
<ol>
|
|
<li>Install the latest Platform SDK from Microsoft.</li>
|
|
<li>Set up your include and library search paths. The first few items on your include path
|
|
should look like this (obviously you might have things installed in different places, but the
|
|
order is important!):
|
|
<pre>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
|
|
...</pre>
|
|
And the library search path should begin like this:
|
|
<pre>C:\Program Files\Microsoft Visual Studio\VC98\LIB
|
|
C:\Program Files\Microsoft Platform SDK\lib
|
|
C:\mycode\juce\bin
|
|
...</pre>
|
|
</li>
|
|
</ol>
|
|
|
|
<p>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.</p>
|
|
|
|
<h3><a name="buildxcode"></a>XCode on OSX</h3>
|
|
|
|
<p>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.</p>
|
|
|
|
<p>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:</p>
|
|
|
|
<ul>
|
|
<li>You'll need to add some or all of the following OSX frameworks to your "External Frameworks and Libraries" list,
|
|
depending on what features your application uses:
|
|
<pre>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.framework</pre>
|
|
|
|
In 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).
|
|
</li>
|
|
<li>If you need to link to the JUCE static library rather than using the amalgamated files, you'll need to drag-and-drop
|
|
the <code>juce.xcodeproj</code> 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).<br/>Alternative ways of linking to JUCE would be to add the libjuce.a or libjucedebug.a library to
|
|
your "External Frameworks and Libraries" list, or to add switch to the linker's command-line of either "-ljuce"
|
|
or "-ljucedebug".</li>
|
|
</ul>
|
|
|
|
<h3><a name="buildlinux"></a>Linux with GCC</h3>
|
|
|
|
<p>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.</p>
|
|
<p>If you've enabled the <code>JUCE_USE_XINERAMA</code> option, then you'll also need to install the Xinerama package.
|
|
And you'll need the <code>GL</code> and <code>GLU</code> libraries if you've enabled <code>JUCE_OPENGL</code></p>
|
|
<p>The makefiles that are generated by the Introjucer can be run by "<code>make CONFIG=Debug</code>",
|
|
or "<code>make CONFIG=Release</code>". You can also use "<code>make clean</code>" to delete the
|
|
intermediate files.</p>
|
|
|
|
<h3><a name="buildandroid"></a>Android</h3>
|
|
|
|
<ul>
|
|
<li>First of all, get yourself over to <a href="http://www.android.com">www.android.com</a>, and install the latest
|
|
Android SDK and NDK. Follow their instructions for installing Eclipse, and get to the point where you can
|
|
build and run some of the Android NDK demo apps in Eclipse before even thinking about trying to do anything with JUCE. The
|
|
Android development environment is a hugely complicated mish-mash of random bits of software, lashed together with scripts,
|
|
so don't expect a slick installation experience - be prepared to mess about. Once it's installed though, it all more-or-less
|
|
seems to work..</li>
|
|
<li>The only sensible way to create an Android JUCE project is with the Introjucer - doing it with Eclipse is a nightmare and if
|
|
you want to do it manaually, good luck. The Introjucer will produce a folder containing a whole heap of files, and you can open the
|
|
folder in Eclipse as a new project (use the "create project" option in Eclipse).</li>
|
|
<li>Eclipse should be able to automatically build the project and run it, but you can also build it from the command-line,
|
|
by setting your CWD to the Android build folder and using "<code>ant debug</code>" or "<code>ant release</code>"</li>
|
|
<li>Be careful that your project folder doesn't contain any spaces in its path - the Android tools can't handle this (!)</li>
|
|
<li>The structure that a JUCE app uses is to have a couple of boilerplate java classes which load and run a big native
|
|
library containing the juce library and all your app code. JUCE uses JNI internally to call java classes to interact with
|
|
the OS.</li>
|
|
<li>When you change some of your app code and need to recompile and re-test the app, Eclipse will usually (but certainly
|
|
not always) detect the change and re-compile the library. Unfortunately, if there are any errors during compilation, it'll
|
|
ignore them, and carry on trying to run the app, after having cleared the console so you can no longer see the errors that
|
|
occurred. In these cases, you probably want to build it using the command-line 'ant debug' so you can actually see what happened.</li>
|
|
<li>Although Eclipse does manage to rebuild the native library when you change some c++ code, it will fail utterly to re-package the
|
|
new library file or to re-install it on the target device. So far, my way of getting it to do this has been to touch one of the
|
|
java files whenever I change any c++, and this seems to kick it into life. If anyone has ever had the patience to become an
|
|
Eclipse expert and can suggest a proper solution to this, please let me know!!</li>
|
|
<li>Often, Eclipse gets confused and insist that there are "mistakes" in the java which prevent it from running the app. Needless
|
|
to say, there aren't really any mistakes, and usually doing a "clean" sorts it out.</li>
|
|
</ul>
|
|
|
|
<div class="ad">
|
|
<p class="ad">***</p>
|
|
</div>
|
|
<div class="bottomsection">
|
|
<p class="bottombar">- Copyright 2005 Raw Material Software Ltd -</p>
|
|
</div>
|
|
</div>
|
|
|
|
</body>
|
|
</html>
|