FROM : Nick Zitzmann
DATE : Mon May 12 19:39:04 2008
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/>
DATE : Mon May 12 19:39:04 2008
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/>
| Related mails | Author | Date |
|---|---|---|
| Nick Zitzmann | May 12, 19:39 | |
| Ken Thomases | May 12, 20:14 | |
| Jean-Daniel Dupas | May 12, 21:31 | |
| Nick Zitzmann | May 13, 05:04 |






Cocoa mail archive

