Getting AAX to compile in Xcode 7

Hi everyone,

I was starting to check out the AAX SDK. The AAX_SDK examples are compiling fine. But in the projucer I can't get the JuceDemoPlugin to compile to AAX. It tells me the AAX SDK files are not found. The AAX SDK path in the Global Preferences is set correctly and the entry is not red anymore, so the path should be fine.

Same thing in Xcode, the Header Search Paths are set correctly. (screenshot)

What am I doing wrong?

Johannes

System: Mac OS X 10.11, Xcode 7.2.1

Try by renaming the aax sdk folder just to AAX. I had a similar issue months ago and I fixed this way.

ok thanks, I tried that and used absolute paths in the preferences.

The build in XCode is different now, it seems compiling fine until at the end the linking process, where it fails to link to the AAX SDK (screenshot)

The build in the projucer stops at the same as before (screenshot above)

Seems like you're trying to build against libstd++ instead of libc++ ;)

http://www.juce.com/forum/topic/aax-libc-library

sorry, that still didn't work. I tried compiling the AAX library in libstd++ and in libc++, it didn't make a difference. I even tried an older AAX SDK, where this issue shouldn't happen. I also tried compiling the Juce Testplugin in libst++ and in libc++, same problem.

Weird thing is, that the projucer doesn't even seem to find the AAX SDK files in the "Interfaces" folder, but the Path in the preferences is set correctly. XCode finds these files and compiles but fails when linking.

I'm missing something fundamental here, I guess. 

I had similar issues recently and could solve it by setting the C++ dialect and C++ standard library correctly and consistent for both, AAXLibrary and the plugin.

If you have a deployment targer > 10.8 you can safely set "Compiler default" for both. But if you have deployment targer <= 10.8 then set C++ dialect to C++11 and C++ library setting to "libc++ (LLVM with C++11 support)". The compiler default for targets <= 10.8 is C++98, which eventually leads into trouble.

To be on the safe side, in XCode run "Product -> Clean" and then "Product -> Build" for both.

HTH

ok, I deleted Juce (+ removed everything with App cleaner) and reinstalled. I put Deployment target to 10.10 and all the compiler settings to "default for targets" for AAX-SDK compiling and Plugin compiling and now compiling works in XCode :-) 

I still get the error in the Projucer ("AAX_exports.cpp is not found") when trying to compile. It seems the "Library Search Paths", which are set correctly in XCode to the AAX SDK paths "AAX/Interfaces" and "AAX/Interfaces/ACF" are not set correctly in the Projucer. Do I have to set the Library Search Paths for the AAX headers manually in the Projucer or shouldn't they be included, as soon as AAX export is marked?

As long as you have set the AAX SDK path correctly in the Introjucer's global preferences everything should be fine. You will have to rename AAXLibrary_libcpp.a to AAXLibrary.a if you are using libstdc++ in your project. The screenshot you shared in your post is definitely a mis-match of c++ libraries (I've seen this error many times already).

Ok thanks so much for the answers! As I said it's working in Xcode now.

I searched everywhere in the forum but didn't find any answer to the Projucer side. Is it possible to change the settings of the JIT compiler in JUCE to for example change Deployment Target, Header search paths, etc manually? Because I still get the error in the projucer.

Can I even compile plugins in the Projucer?

Can I even compile plugins in the Projucer?

No, unfortunately at the moment you can't. We may add this functionality at some point in the future, but it's actually quite hard to do.

One of the ideas of the Projucer's live coding environment is that you instantiate and run classes in isolation, rather than running the whole app/plugin as you would in an IDE.

I am having the same exact issues as Johannes, I cannot get Projucer to compile for AAX, when copying what Johannes did in Xcode and I get the search headers to recognize the includes i start receiving a massive number of errors all AAX related. 

 

As Daniel suggested above I am using C++ dialect: c11 and C++ library setting: "libc++ (LLVM with C++11 support) while targeting 10.7

did you use the same settings for compiling the AAX Library? First time, it didn't worked for me either, I had to clean and rebuild in XCode. For me then it worked in XCode.

To further clarify, I got XCode to compile correctly now, but still receiving Projucer errors

 

 

as Timur pointed out, the Projucer doesn't support compiling plugins at the moment

I’m having exactly the same issue in projucer with the “AAX_exports.cpp is not found” error. It compiles fine in Xcode. My compiler setting in XCode is set to LVM with C++11 support because of 10.7 as deployment target. Someone found a solution for this? Does this work now or are plugins still not supported?