When building a simple demo for libevent(https://github.com/D-Programming-Deimos/libevent) on Windows 10 X64, I got these errors blown:
ws2_32.lib(WS2_32.dll) : error LNK2005: htonl already defined in phobos64.lib(winsock2_1f3b_225.obj)
ws2_32.lib(WS2_32.dll) : error LNK2005: htons already defined in phobos64.lib(winsock2_1f3a_22c.obj)
ws2_32.lib(WS2_32.dll) : error LNK2005: ntohl already defined in phobos64.lib(winsock2_1f3d_225.obj)
ws2_32.lib(WS2_32.dll) : error LNK2005: ntohs already defined in phobos64.lib(winsock2_1f3c_22c.obj)
I redefined these functions in druntime\src\core\sys\windows\winsock2.d. For example:
uint htonl(uint x)
{
return bswap(x);
}
is changed to:
uint htonl(uint x);
After rebuilding the phobos64.lib, I can eliminate these errors.
Here is a test code:
import std.stdio;
import deimos.event2.event;
import std.socket;
void main()
{
event_base_loopbreak(null);
InternetAddress addr1 = new InternetAddress("127.0.0.1", 80);
writeln(addr1.port);
writeln(addr1.addr);
}
Compiler: dmd v2.076.0/VC++ 2017
OS: Windows 10 x64