[Issue 17851] New: htonl already defined in phobos64.lib
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Sep 23 03:11:05 UTC 2017
https://issues.dlang.org/show_bug.cgi?id=17851
Issue ID: 17851
Summary: htonl already defined in phobos64.lib
Product: D
Version: D2
Hardware: x86_64
OS: Windows
Status: NEW
Severity: normal
Priority: P1
Component: druntime
Assignee: nobody at puremagic.com
Reporter: bitworld at qq.com
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
--
More information about the Digitalmars-d-bugs
mailing list