Juce mac projects type


#1

i’m fairly new to mac world, i would like to know what kind of project should i choose when building a library based on juce. also which kind of project i have to choose from if i would build an executable. there are lots of possibilities from xcode. i don’t know if i have to choose carbon or cocoa (don’t even know the difference)… :roll:


#2

There’s a lot of build settings you’ll need to tweak, so I’d probably recommend just copying the demo app and renaming it.


#3

ok i’ll copy juce xcode project and start from that. anyway i’ll prefer to learn step by step. what kind of tweaks could i need to do before get it running ?


#4

compiling juce on mac with 10.4.0 sdk produces some warnings of deprecated functions, also i get

#if ! MACOS_10_3_OR_EARLIER
kCGBitmapByteOrder32Big |
#endif

which is undefined symbol… i don’t know why :wink:


#5

also, i’m getting some problems in the main sdk includes. seems that something is broken up… but don’t seem to be my system. i’ll have to investigate then…


#6

You’ll get a few deprecation warnings - I’ll update that stuff eventually, don’t worry about it.

If there’s a build error, you’ve probably not got the latest SDKs, or are missing some of the old ones.


#7

ok now i fixed the sdk include errors. now i’m able to build juce correctly and the jucedemo. now i have ejuce, which is a static carbon library based on juce headers. now i’ve built the project correctly, and linked togheter with juce project and library (but i don’t think is correct tho). then i’ve copied the jucedemo project to another location, stripped the source files and added the new ones based on ejuce. also i linked ejuce library (and project) to the new executable, togheter with the existing juce library (and project). now i get some linker errors

[code]Checking Dependencies
CpResource build/Debug/jucedemo.app/Contents/Resources/juce.xcconfig …/…/…/…/build/macosx/juce.xcconfig
cd /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx
/System/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp -exclude .DS_Store -exclude CVS -exclude .svn -resolve-src-symlinks /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/…/…/…/…/build/macosx/juce.xcconfig /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/build/Debug/jucedemo.app/Contents/Resources

Ld /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/build/Debug/jucedemo.app/Contents/MacOS/jucedemo normal ppc
cd /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx
/usr/bin/g+±4.0 -o /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/build/Debug/jucedemo.app/Contents/MacOS/jucedemo -L/Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/build/Debug -L…/…/…/bin -L/Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/…/…/…/…/bin -F/Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/build/Debug -filelist /Users/kunitoki/Projects/juce/projects/angeljuice/build/macosx/build/angeljuice.build/Debug/angeljuice.build/Objects-normal/ppc/jucedemo.LinkFileList /Users/kunitoki/Projects/juce/bin/libjucedebug.a /Users/kunitoki/Projects/juce/bin/libejucedebug.a -framework AGL -framework Carbon -framework CoreAudio -framework CoreMIDI -framework CoreServices -framework IOKit -framework OpenGL -framework QuickTime -arch ppc -prebind -Wl,-Y,1455 -mmacosx-version-min=10.4 -isysroot /Developer/SDKs/MacOSX10.4u.sdk
/usr/bin/ld: warning -L: directory name (…/…/…/bin) does not exist
/usr/bin/ld: warning -prebind ignored because MACOSX_DEPLOYMENT_TARGET environment variable greater or equal to 10.4
/usr/bin/ld: Undefined symbols:
std::__default_alloc_template<true, 0>::deallocate(void*, unsigned long)
std::__default_alloc_template<true, 0>::allocate(unsigned long)
/Users/kunitoki/Projects/juce/bin/libejucedebug.a(ejuce_ScriptablePreprocessor.o) reference to undefined std::__default_alloc_template<true, 0>::deallocate(void*, unsigned long)
/Users/kunitoki/Projects/juce/bin/libejucedebug.a(ejuce_ScriptablePreprocessor.o) reference to undefined std::__default_alloc_template<true, 0>::allocate(unsigned long)
/Users/kunitoki/Projects/juce/bin/libejucedebug.a(ejuce_ScriptableEngine.o) reference to undefined std::__default_alloc_template<true, 0>::deallocate(void*, unsigned long)
/Users/kunitoki/Projects/juce/bin/libejucedebug.a(ejuce_ScriptableEngine.o) reference to undefined std::__default_alloc_template<true, 0>::allocate(unsigned long)
/Users/kunitoki/Projects/juce/bin/libejucedebug.a(StandardPhilToolbar.o) reference to undefined std::__default_alloc_template<true, 0>::deallocate(void*, unsigned long)
/Users/kunitoki/Projects/juce/bin/libejucedebug.a(StandardPhilToolbar.o) reference to undefined std::__default_alloc_template<true, 0>::allocate(unsigned long)
collect2: ld returned 1 exit status[/code]

now this turned into a mess ;/ what i could do ?
ah the same stuff compiles correctly on gcc 3.3 and 3.4 on linux…


#8

No idea, sorry!


#9

ok i found. i was not declaring the compiler to be 3.3 from .xcconfig (was using 4.0)… now is working correctly ! thanx to me :wink:


#10