Trying to use AERecorder

edited May 2013

I get this error with AERecorder, it's not all that great honestly. I am using ARC but it doesn't seem like that that is the error. It says AERecorder is not made for armv7, even though the project settings are set for armv7 and armv7s...
Strange! Maybe I accidentally hit something wrong. I added the Modules to my header search path because I couldn't get it to work without, it was causing problems with AECircularBuffer. This is quite confusing.

Ld /Users/veryinc/Library/Developer/Xcode/DerivedData/Twig-bdabrlnebmnjazadjvwpwuczrixa/Build/Products/Debug-iphoneos/ normal armv7
cd /Users/veryinc/Documents/Xcode/twig/RD9/twig
setenv PATH "/Applications/"
/Applications/ -arch armv7 -isysroot /Applications/ -L/Users/veryinc/Library/Developer/Xcode/DerivedData/Twig-bdabrlnebmnjazadjvwpwuczrixa/Build/Products/Debug-iphoneos -F/Users/veryinc/Library/Developer/Xcode/DerivedData/Twig-bdabrlnebmnjazadjvwpwuczrixa/Build/Products/Debug-iphoneos -filelist /Users/veryinc/Library/Developer/Xcode/DerivedData/Twig-bdabrlnebmnjazadjvwpwuczrixa/Build/Intermediates/ -dead_strip -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=6.1 -framework Accelerate /Users/veryinc/Library/Developer/Xcode/DerivedData/Twig-bdabrlnebmnjazadjvwpwuczrixa/Build/Products/Debug-iphoneos/libTheAmazingAudioEngine.a -framework AudioToolbox -framework MediaPlayer -framework QuartzCore -framework AVFoundation -framework UIKit -framework Foundation -framework CoreGraphics -o /Users/veryinc/Library/Developer/Xcode/DerivedData/Twig-bdabrlnebmnjazadjvwpwuczrixa/Build/Products/Debug-iphoneos/

Undefined symbols for architecture armv7:
"OBJC_CLASS$_AERecorder", referenced from:
objc-class-ref in CreateSong.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)


  • I tried adding the Modules folder separately to the project, and changing the header search path, same error. No dice.

  • It seems like a need a .a file with those modules enabled?!

  • I figured it out, doink. Have to add the files in the same place i set the no ARC flag

  • I get a different linker error once I try to build AERecorder.m into my project:
    ld: '_audioCallback' in /Users/ilias/Library/Developer/Xcode/DerivedData/Crossfader-calzdejhyzjpdkfrwohcbmhejgsj/Build/Intermediates/ contains undefined reference for architecture armv7
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    I am compiling from an Objective-C++ project, perhaps this is the problem?

  • Any help resolving this linker error would be greatly appreciated!

    I have tried using AEAudioFileWriter instead but run into a different linker error:

  • do you use -fno-objc-arc in compiler flag (for all TAAE source code)

  • I've just had an idea - try using the latest version (SHA 62f41ee5)

  • Thanks, Michael, I appreciate your suggestion and all your hardwork developing and supporting TAAE!

    I tried the latest version as well as the SHA you specified. I am using -fno-objc-arc compiler flag. Still, I get this unintelligible linker error when I try to use AERecorder:

    ld: warning: could not create compact unwind for .LFB3: non-standard register 5 being saved in prolog
    ld: 'objc-class-ref' in /Users/ilias/Library/Developer/Xcode/DerivedData/Crossfader-calzdejhyzjpdkfrwohcbmhejgsj/Build/Intermediates/ contains undefined reference for architecture i386
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
  • You can determine if any library contains the object file you require by opening a terminal and typing
    cd /Library/Developer/Xcode/DerivedData
    then type
    find . -name "AERecorder.o (or AEWhatever.o)
    you will probably see the object file is not in the libTheAmazingAudioEngine.a.
    This means the library file has been built without the AERecorder included in the project.

    The solution is to open the TheAmazingAudioEngine.xcodeproj in Xcode.
    Go to "Compile Sources" in the Build Phases.
    Remove all the files
    Then add all the files and build.

    Type this again in terminal
    find . -name "AERecorder.o (or AEWhatever.o) and you should see the object file in the library.
    Now include this libTheAmazingAudioEngine.a file in your "Link Binary With Libraries" under Build Phases.

Sign In or Register to comment.