Linker error

Steven Schveighoffer via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 10 06:17:32 PDT 2016


On 6/10/16 8:04 AM, Chris wrote:
> I get the error below with code like this:
>
> auto res = ['1', '2'].map!(a => a.to!string);
>
> dmd 2.071.0
>
> What's wrong here? I import std.algorithm, std.range, std.array,
> std.conv in the module.
>
> (.data._D65TypeInfo_xC3std5range10interfaces18__T10InputRangeTiZ10InputRange6__initZ+0x10):
> undefined reference to
> `_D64TypeInfo_C3std5range10interfaces18__T10InputRangeTiZ10InputRange6__initZ'
>
> collect2: error: ld returned 1 exit status

This linker error is saying it can't find a required typeinfo 
initializer for std.range.interfaces.InputRange (of some type, not an 
expert in demangling D symbols).

Generally this happens when you compile against a third-party library 
file but don't link to it (I think that type of symbol is stored in the 
module info).

Your posted code has nothing to do with this, so I'm not sure this is 
the exact line you are having trouble with. Your posted map line should 
not be invoking this error at all.

Have you tried Vladimir's DustMite tool? It can automatically whittle 
down your code into a minimal test case.

https://github.com/CyberShadow/DustMite/wiki

-Steve


More information about the Digitalmars-d-learn mailing list