Linking Error (WS2_32.LIB)

Walter Bright newshound2 at digitalmars.com
Thu Nov 10 11:46:27 PST 2011


On 11/9/2011 10:09 AM, Tobse wrote:
> Hey,
> i wanted to write a basic cli chat to get familiar with d. So i looked up the
> default library for sockets and found std.socket; There is a note that says
> "compile with ws2_32.lib". When i simply run:
>
> dmd main.d
>
> it tells me:
>
> OPTLINK (R) for Win32  Release 8.00.12
> Copyright (C) Digital Mars 1989-2010  All rights reserved.
> http://www.digitalmars.com/ctg/optlink.html
> dist\client.obj(client)
>   Error 42: Symbol Undefined _D3std6socket7Address8toStringMFZAya
> dist\client.obj(client)
>   Error 42: Symbol Undefined _D3std6socket7Address13addressFamilyMFZE3std6socket1
> 3AddressFamily
> dist\client.obj(client)
>   Error 42: Symbol Undefined _D3std6socket7Address7nameLenMFZi
> dist\client.obj(client)
>   Error 42: Symbol Undefined _D3std6socket7Address4nameMFZPS3std1c7windows7winsoc
> k8sockaddr
> --- errorlevel 4

To compile main.d and link with ws2_32.lib,

    dmd main.d ws2_32.lib

will work. However, that is not the problem you're having. There's clearly a 
mismatch between the phobos.lib you're linking with and the std.socket being 
read by the compiler. One is out of date with the other.

In other words, the undefined symbols reported by the linker appear in 
std.socket but do not appear in phobos.lib.


More information about the Digitalmars-d mailing list