How to share modules when using -shared?
Justin Whear via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Tue Dec 9 16:44:41 PST 2014
I'm trying to build components that I can dynamically link and keep
running into an issue with sharing modules between the host and the
pluggable components. Assuming a layout like this:
host.d -- loads components at runtime
a.d -- a module that builds to `a.so`
b.d -- a module that builds to `b.so`
common.d
If a.d and b.d both import common.d, all is well. If host.d imports
common.d as well, I get this at runtime:
Fatal Error while loading 'a.so':
The module 'common' is already defined in 'host'.
Test session with sources here: http://pastebin.com/LxsqHhJm
Some of this can be worked around by having host.d use its own extern
definitions, but how does this work with interfaces? My tests thus far
have resulted in object invariant failures.
More information about the Digitalmars-d-learn
mailing list