How to share modules when using -shared?
MrSmith via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Dec 14 02:55:23 PST 2014
On Wednesday, 10 December 2014 at 00:44:41 UTC, Justin Whear
wrote:
> 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.
You can have common in separate .so file, or include it in host.
More information about the Digitalmars-d-learn
mailing list