digitalmars.D.learn - Public imports with D interface files?
- Sean Eskapp (16/16) Sep 03 2011 I'm compiling a very simple D interface file:
 - David Nadlinger (6/22) Sep 03 2011 Are you specifying std_ext/typetuple.di or whatever it is called when
 - Sean Eskapp (3/34) Sep 03 2011 I wasn't including it on the command line; I thought I didn't need to. T...
 
I'm compiling a very simple D interface file:
    module std_ext.typetuple;
    public import std.typetuple
    class TypeArray(T...)
    {
    }
Compiling it as such:
    dmd -debug -unittest -D -Dddocs -w -H -o- std_ext/typetuple.d
And including it as such:
    import std_ext.typetuple;
    void main()
    {
        TypeArray!(int, double) blah;
    }
I get a linker error "Symbol Undefined _D7std_ext9typetuple12__ModuleInfoZ"
Removing the public import removes this error. How can I fix this?
 Sep 03 2011
Are you specifying std_ext/typetuple.di or whatever it is called when 
compiling the main module? The public import probably triggers creation 
of a module constructor as it really creates aliases for the symbols 
from the imported module.
David
On 9/4/11 3:17 AM, Sean Eskapp wrote:
 I'm compiling a very simple D interface file:
      module std_ext.typetuple;
      public import std.typetuple
      class TypeArray(T...)
      {
      }
 Compiling it as such:
      dmd -debug -unittest -D -Dddocs -w -H -o- std_ext/typetuple.d
 And including it as such:
      import std_ext.typetuple;
      void main()
      {
          TypeArray!(int, double) blah;
      }
 I get a linker error "Symbol Undefined _D7std_ext9typetuple12__ModuleInfoZ"
 Removing the public import removes this error. How can I fix this?
 Sep 03 2011
I wasn't including it on the command line; I thought I didn't need to. That fixed it, thanks! == Quote from David Nadlinger (see klickverbot.at)'s articleAre you specifying std_ext/typetuple.di or whatever it is called when compiling the main module? The public import probably triggers creation of a module constructor as it really creates aliases for the symbols from the imported module. David On 9/4/11 3:17 AM, Sean Eskapp wrote:I'm compiling a very simple D interface file: module std_ext.typetuple; public import std.typetuple class TypeArray(T...) { } Compiling it as such: dmd -debug -unittest -D -Dddocs -w -H -o- std_ext/typetuple.d And including it as such: import std_ext.typetuple; void main() { TypeArray!(int, double) blah; } I get a linker error "Symbol Undefined _D7std_ext9typetuple12__ModuleInfoZ" Removing the public import removes this error. How can I fix this?
 Sep 03 2011








 
 
 
 Sean Eskapp <eatingstaples gmail.com>