I asked this on the xcode-users list recently, but either nobody knew the answer, or someone did and didn't want to tell me, so maybe I'll have better luck asking on a related list:

I've got an application that loads some bundles. The bundles each contain an ObjC class that subclasses an abstract class that exists in the application. The bundles are compiled with the "-undefined dynamic_lookup" linker flag so that the linker will link the code without the presence of the superclass in the bundle.

This works fine when the app is running as 32-bit, but when it's running in 64-bit, the app fails to load the bundles, and generates a warning like this:

2008-05-10 00:45:42.856 TestApp[28170:813] Error loading /Users/ nickzman/Build/Debug/TestApp.app/Contents/Resources/MyPlugin.bundle/ Contents/MacOS/MyBundle: dlopen(/Users/nickzman/Build/Debug/ TestApp.app/Contents/Resources/MyPlugin.bundle/Contents/MacOS/ MyBundle, 265): Symbol not found: _OBJC_CLASS_$_PluginSuperclass Referenced from: /Users/nickzman/Build/Debug/TestApp.app/Contents/ Resources/MyPlugin.bundle/Contents/MacOS/MyBundle
 Expected in: dynamic lookup

Yes, both the app and the plugins are being built using the same architecture (x86_64). And yes, PluginSuperclass does exist in the app. So now I need to know:

1. Why does this happen in 64-bit but not 32-bit?
2. How do I fix this without building the abstract superclass into each bundle (which is wasteful)?

Nick Zitzmann
<http://www.chronosnet.com/>




_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [EMAIL PROTECTED]

Reply via email to