问题
Background
I am trying to get Apple's example TremoloUnit to run in Logic 9. From various forums and this SO answer, the problem with Apple's examples seems to be that Logic 9 (and many other AU hosts) use old Carbon resources. According to this technical note, adding an appropriate .r
file should provide the needed backwards compatability, so I added a .r
that matches the sample .plist
.
The Problem
If I include the line _TremoloUnitEntry
in my .exp
, the linker throws this error:
Undefined symbols for architecture i386:
"_TremoloUnitEntry", referenced from:
-exported_symbol[s_list] command line option
However, if I leave that line out (so that the entire .exp
consists of _TremoloUnitFactory
), Xcode compiles successfully. The resulting component:
- passes
auval -32 -v aufx TREM DEMO
- runs in AU Lab
- is detected by Logic's Audio Units Manager and passes its run of auval, but throws this error:
validation result: successfully validated
updating properties of AU Tremolo (Effect AU) by Apple Sample Code... Failed!
The Question
How can I get the demo AU to run in Logic? Endless Googling and Apple's outdated docs have failed me. (It would really be great if the example projects weren't still broken out of the box...)
System Details
- Logic Express 9.1.8 (32 bit)
- Xcode 6.2
- Mac OS 10.9.5
- AU Lab 2.2.2
Update
I wrote a simple gain demo from scratch, and... it works! Kind of. It runs in AU Lab and Logic but doesn't get detected by auval -a
. Is there an Xcode project setting that would cause this? I'm new to Xcode and am failing to find a reason why the Apple demo is broken in one way and mine broken in another.
回答1:
Make sure the only entry in your .exp file is _TremoloUnitFactory. You said you already removed _TremoloUnitEntry, so you should be good.
Next, in the Project Navigator, highlight "Info.plist". Select "View=>Utilities=>Show File Inspector" from the menu. In the File Inspector, under "Target Membership", uncheck "TremoloUnitEntry".
Recompile. That should do it.
来源:https://stackoverflow.com/questions/30016751/audio-unit-fails-to-run-in-logic-exp-entry-undefined-in-linker