__init unresolved external when using C library structs converted with dstep

Steven Schveighoffer schveiguy at gmail.com
Tue Apr 14 18:23:05 UTC 2020


On 4/14/20 1:51 PM, Robert M. Münch wrote:
> I use a C libary and created D imports with dstep. It translates the C 
> structs to D structs.
> 
> When I now use them, everything compiles fine but I get an unresolved 
> external error:
> 
> WindowsApp1.obj : error LNK2019: unresolved external symbol 
> "myCstruct.__init" (_D7myCStruct6__initZ) referenced in function _Dmain
> 
> Any idea what this is about and how to fix it? I'm wondering why D tries 
> to find the __init function in the C library and not compile it from the 
> import.
> 

__init is not a function, it's a static member variable. It's the 
`intializer` property inside TypeInfo used for initialization.

Did you extern(C) the struct? Are you compiling the D file that contains 
the struct definition as well?

-Steve


More information about the Digitalmars-d-learn mailing list