XCode/Juce Quickstart help


I just got a new iMac running Lion 10.7.3 and xcode 4.3 and am trying to build a juce application I wrote on the PC. I’ve been away from macs for a few years and don’t know how to drive xcode (yet), but am reading the manuals. My application is based on juce 1.5.4, the juce folder resides alongside my application folder.

I decided to try building the introjucer first - loaded the project in xcode and tried building the ‘product’. It generated 805 errors. Generally it can’t find the ‘core’ anything. So, what suggestions (besides reading the xcode manuals faster!) might you folks suggest for me to get a foothold?

Are there ‘commonly known’ tweaks that have to be made to xcode, such as aiming it at ‘additional include folders’ etc. to use vc2010 terminology? Do I need to download additional libraries besides what came with xcode etc. etc. etc.?

The first error encountered was the inability to find the CoreFoundation.h file in juce_amalgamated:

  #define Point CarbonDummyPointName // (workaround to avoid definition of "Point" by old Carbon headers)
  #include <CoreFoundation/CoreFoundation.h> // (needed to find out what platform we're using)
  #undef Point


Instead of trying to work with my existing code I just went back to the juce website, followed the links to download the introjucer.dmg, ran it, and had it download the latest version of juce which was 1.54.27 - the download completed.

I then opened the introjucer project in xcode 4.3 and told it to ‘build for running’.
It didn’t work, tons of errors.
I also didn’t see a ‘modules’ folder under the src folder.

Am I missing a step here, or following the wrong links or something?


It seems you are missing some required frameworks. But 4.3 has some C++ 2011 extensions. Jules just touched quite a few files just to appease that. Are you sure you don’t want to use the juce tip?

What is the juce tip? Wait…that means the bleeding edge code right?

Ok, some thoughts on the matter. Jules, I’m an experienced developer, which doesn’t mean I know it all, but I think some observations from an outside perspective might be in order at this point. From my perspective, and from what the posts I’ve seen indicate - On my new mac I expect that when I grab the introjucer.dmg and have it download the latest version of juce, which the website says compiles for osx - that it actually does that. And at this point it doesn’t.

Previously, and following the jucequake post I tried using git to move to the modules version, but the instructions didn’t work for me so when I had a window of opportunity to ‘get current’ - it didn’t work, thus I’m still on 1.54, which is what the introjucer grabbed (actually it grabbed 1.54.27 I believe). I had to make some modifications to the juce audio code for my application, so I’ve ‘branched’ a bit and will have to add those changes (hopefully done better than the first pass) to whatever I eventually get running on xcode. I’d like to get that over-n-done with.

But at this point things aren’t working all that well from an outside perspective, new to juce, from a ‘I want to code my application perspective’.

I was wondering if you would consider taking some time to write up a sort of ‘state of the union’ or ‘overview’ post, targeting a non-juce-expert developer in order to clarify these issues. As it stands I’m not sure how and where I got off the beaten path but it appears I am, and I suspect others are encountering the same issues. (I hope so at least - I don’t like being the slow-learner here but if the shoe fits…argghh) (grin).

What IS the latest version of juce?
Does introjucer actually grab it or not?
What version of osx/xcode will work?
Why does ‘jucer.exe’ expect to open .cpp files instead of files with .jucer (meant for introjucer)? It’s confusing!
How do you use the modules branch?
Do we now have multiple choices (since modules is in the main branch) amalgamated, non-amalgamated, modules?

These are some of the high-level confusing issues to me, and are meant to illustrate the the user experience of this developer. I think a wee bit of documentation from the boss might good about now.

Suggestion…consider writing us a quick start guide to address the immediate new-jucer confusions, then begin working on the outline of the ‘The Juce Usage and Architecture’ guide. WIth an outline to usage and understanding the architecture, written by the author, the community could then be enlisted to actually write the chapters. The wiki is pretty lean folks.

Thanks for listening,

Sorry you’re confused. You just want to do exactly what it says on the downloads page, and

git clone --depth 1 git://juce.git.sourceforge.net/gitroot/juce/juce

That’ll get you today’s version.

The pre-built exe of introjucer on sourceforge is still pre-modules, so it only knows how to download the last pre-modules version of the library. Because that code is about 6 months old, it doesn’t contain the fixes needed to support the newest releases of Xcode.

I’ll be doing a new release very soon, and uploading new pre-built binaries, so everything should become a lot less confusing!

Uh, I’m not Jules.

FWIW, Juce is working very well for me.

I get that people get angry when they have problems. But look at the case here. You are running an ancient version of juce on a new version of the OS and a new compiler that was just released a few days ago! Your problems are the straight forward stuff that always happens when a compiler makes a shift in standards compliance. I am certain that I could get 1.54 running on xcode 4.3. My point was, why bother? Jules has already addressed the problem. Of course there are reasons not to change versions at certain points. That’s why I asked if you are sure. But you’re going to have to touch a lot of files to update to the latest and greatest compiler on the latest and greatest version of the OS. That would seem to shift the risk proposition, but it’s your call.

What bothers me is, you couldn’t call Microsoft with this problem. If you could, it wouldn’t get fixed in a day. They have an army. Jules is ONE guy. Yet, everytime I track down a bug, he gets the fix in within a day or so. Just like he had 4.3 solved a couple of days after it first came up here. I can’t imagine better support. If that doesn’t match your idea of professional, your using the wrong tool. You want something with a support engineering staff releasing service packs for every release until official end of life. Even then, you’ll be told to go back to version X of the compiler until the service pack this summer…

Hi Everybody,

I just wanted to clarify that I’m not angry, and I didn’t know xcode 4.3 just came out a couple of days ago! I’m trying to communicate that from the outside looking in the user experience to get started has some roadblocks that I think warrant some documentation or clarification.

That’s absolutely something that I’ve been meaning to do, but because things work a bit differently in the modularised version, I was waiting until I’ve got the latest “official” downloadable release out the door before starting it… When I do, it would indeed be very helpful if people could help flesh-out the details!

Thanks folks,

Count me in for helping with the chapters on getting started because it’s still fresh to me. I’ve just begun reusing vc2010 and am brand new to xcode and have been (will) make all sorts of blunders that I’m sure others would like to avoid!

Oh, one more thing Jules - Since I’ve got a fresh mac could I talk you into a brief explanation of how I should structure my juce development in the file system? I think I saw that xcode is git friendly right out of the box if I’m not mistaken so a question that comes to mind is - should I use xcode’s git features to grab the code or just shell it?

Talk to 'ya tomorrow.

I’ve not really tried Xcode’s GIT integration, but it looks pretty decent. I use a separate GIT app myself, because I prefer to keep source-control separate from the coding process, but that’s just my personal taste.