[ENet-discuss] Linking enet/winsock under mingw32

Lee Salzman lsalzman at gmail.com
Sun Feb 23 09:59:58 PST 2014


There's no need for linking against wsock32. Also, trying supplying the linker flags in this order: -lenet -lws2_32 -lwinmm

On 02/23/2014 07:48 PM, Ryan Capote wrote:
> I'm having an issue with linking enet/winsock under MinGW32, and I'm not understanding why it's failing to work. Make will fail immediately if it couldn't find the libraries, so it can find them (and I verified they are in the path)...but it's still failing. I compiled enet in the same environment, so I don't think it has to do with enet using different library versions
>
>
> /c/MinGW/bin/g++.exe      -Wl,--whole-archive CMakeFiles/ArchaicServer.dir/objects.a -Wl,--no-whole-archive  -o bin/ArchaicServer.exe -Wl,--out-implib,libArchaicServer.dll.a -Wl,--major-image-version,0,--minor-image-version,0  -L../ArchaicEngine  -lwsock32 -lwinmm -lws2_32 -lenet -larchaicengine -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32
>
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_initialize':
> c:\library\enet/win32.c:19: undefined reference to `_imp__WSAStartup at 8'
> c:\library\enet/win32.c:30: undefined reference to `_imp__timeBeginPeriod at 4'
> c:\library\enet/win32.c:25: undefined reference to `_imp__WSACleanup at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_deinitialize':
> c:\library\enet/win32.c:38: undefined reference to `_imp__timeEndPeriod at 4'
> c:\library\enet/win32.c:40: undefined reference to `_imp__WSACleanup at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_host_random_seed':
> c:\library\enet/win32.c:46: undefined reference to `_imp__timeGetTime at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_time_get':
> c:\library\enet/win32.c:52: undefined reference to `_imp__timeGetTime at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_time_set':
> c:\library\enet/win32.c:58: undefined reference to `_imp__timeGetTime at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_address_set_host':
> c:\library\enet/win32.c:66: undefined reference to `_imp__gethostbyname at 4'
> c:\library\enet/win32.c:70: undefined reference to `_imp__inet_addr at 4'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_address_get_host_ip':
> c:\library\enet/win32.c:85: undefined reference to `_imp__inet_ntoa at 4'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_address_get_host':
> c:\library\enet/win32.c:100: undefined reference to `_imp__gethostbyaddr at 12'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_bind':
> c:\library\enet/win32.c:120: undefined reference to `_imp__htons at 4'
> c:\library\enet/win32.c:129: undefined reference to `_imp__bind at 12'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_get_address':
> c:\library\enet/win32.c:140: undefined reference to `_imp__getsockname at 12'
> c:\library\enet/win32.c:144: undefined reference to `_imp__ntohs at 4'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_listen':
> c:\library\enet/win32.c:152: undefined reference to `_imp__listen at 8'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_create':
> c:\library\enet/win32.c:158: undefined reference to `_imp__socket at 12'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_set_option':
> c:\library\enet/win32.c:199: undefined reference to `_imp__setsockopt at 20'
> c:\library\enet/win32.c:170: undefined reference to `_imp__ioctlsocket at 12'
> c:\library\enet/win32.c:179: undefined reference to `_imp__setsockopt at 20'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_get_option':
> c:\library\enet/win32.c:216: undefined reference to `_imp__getsockopt at 20'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_connect':
> c:\library\enet/win32.c:234: undefined reference to `_imp__htons at 4'
> c:\library\enet/win32.c:237: undefined reference to `_imp__connect at 12'
> c:\library\enet/win32.c:238: undefined reference to `_imp__WSAGetLastError at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_accept':
> c:\library\enet/win32.c:251: undefined reference to `_imp__accept at 12'
> c:\library\enet/win32.c:261: undefined reference to `_imp__ntohs at 4'
> c:\library\enet/win32.c:251: undefined reference to `_imp__accept at 12'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_shutdown':
> c:\library\enet/win32.c:270: undefined reference to `_imp__shutdown at 8'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_destroy':
> c:\library\enet/win32.c:277: undefined reference to `_imp__closesocket at 4'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_send':
> c:\library\enet/win32.c:294: undefined reference to `_imp__htons at 4'
> c:\library\enet/win32.c:298: undefined reference to `_imp__WSASendTo at 36'
> c:\library\enet/win32.c:308: undefined reference to `_imp__WSAGetLastError at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_receive':
> c:\library\enet/win32.c:328: undefined reference to `_imp__WSARecvFrom at 36'
> c:\library\enet/win32.c:354: undefined reference to `_imp__ntohs at 4'
> c:\library\enet/win32.c:338: undefined reference to `_imp__WSAGetLastError at 0'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socketset_select':
> c:\library\enet/win32.c:368: undefined reference to `_imp__select at 20'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/lib/
> ../lib/libenet.a(win32.o): In function `enet_socket_wait':
> c:\library\enet/win32.c:390: undefined reference to `_imp__select at 20'
> c:\library\enet/win32.c:400: undefined reference to `__WSAFDIsSet at 8'
> c:\library\enet/win32.c:403: undefined reference to `__WSAFDIsSet at 8'
> ../ArchaicEngine/libarchaicengine.a(NetworkPeer.cpp.obj):NetworkPeer.cpp:(.text+
> 0x51): undefined reference to `enet_peer_disconnect'
> ../ArchaicEngine/libarchaicengine.a(NetworkPeer.cpp.obj):NetworkPeer.cpp:(.text+
> 0x8c): undefined reference to `enet_peer_send'
> ../ArchaicEngine/libarchaicengine.a(NetworkPeer.cpp.obj):NetworkPeer.cpp:(.text+
> 0xca): undefined reference to `enet_packet_create'
> ../ArchaicEngine/libarchaicengine.a(NetworkPeer.cpp.obj):NetworkPeer.cpp:(.text+
> 0xea): undefined reference to `enet_peer_send'
> c:/mingw/bin/../lib/gcc/i686-w64-mingw32/4.8.2/../../../../i686-w64-mingw32/bin/
> ld.exe: ../ArchaicEngine/libarchaicengine.a(NetworkPeer.cpp.obj): bad reloc addr
> ess 0x20 in section `.eh_frame'
> collect2.exe: error: ld returned 1 exit status
> make[2]: *** [bin/ArchaicServer.exe] Error 1
> make[2]: Leaving directory `/c/projects/archaicengine/archaicserver'
> make[1]: *** [CMakeFiles/ArchaicServer.dir/all] Error 2
> make[1]: Leaving directory `/c/projects/archaicengine/archaicserver'
> make: *** [all] Error 2
>
>
> _______________________________________________
> ENet-discuss mailing list
> ENet-discuss at cubik.org
> http://lists.cubik.org/mailman/listinfo/enet-discuss



More information about the ENet-discuss mailing list