On 5/9/16 8:11 PM, Jens Alfke wrote:

The release version of the framework isn’t exporting any of its symbols,
probably. A debug build exports all symbols by default, but IIRC a
release one doesn’t. I use an exported-symbols (.exp) file to tell the
linker which symbols to export — you configure that with the “Exported
Symbols File” option in the Linker build settings. The .exp file is just
a list of symbols, one per line; for obscure reasons function and global
variable names have to be prefixed with a “_”. For an Obj-C class use
the name “.objc_class_name_SBSoundEffects”.

—Jens

Thanks to Jens and Alex I'm getting closer. Confounding the issue is that I somehow "fixed" the link problem - now Release builds just fine - and I am unsure what I did [although I suspect it was an incorrectly specified include in the umbrella header file].

Great - so now Release builds. But now that I know about limiting the Exported symbols to just the bare minimum, I cannot seem to make the "exported symbols" file "take". That is, no matter what I do, running "nm" and "nm -g" on the Debug and Release binary shows no difference between them regardless of the options I play with.

Of all the options below, "Symbols Hidden By Default" would seem to offer the ability to limit symbols, but setting it to YES (for Release) breaks the link (error inline).

These are the available options that would appear to be relevant:

Settings are only for Release Build Config

Deployment
----------
Strip Debug Symbols During Copy
  YES (Doesn't seem to matter)

Strip Style
  ALL

Use Separate Strip
  no effect

Linking
-------
Exported Symbols File
Project/SomeFile (I know its getting picked up since I can put garbage in the file and get errors

  [contents are one line + "\n" ->
   .objc_class_name_SBSoundEffects (thanks Jens!)]

Apple LLVM 7.1 - Code Generation
--------------------------------
Symbols Hidden By Default
  NO [setting it to YES breaks the Framework:
 "ld: warning: cannot export hidden symbol _OBJC_CLASS_$_SBSoundEffects"


So what is the magic sauce?


- David
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Xcode-users mailing list      (Xcode-users@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/xcode-users/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to