Closed kingspride closed 2 years ago
Looks like a missing #include <shareLib.h>
I narrowed it down to an incompatibility between POSIX / Windows.
reccaster client uses a lot of ssize_t
which is not directly available on Windows (there its SSIZE_T
), but can be added via
#if defined(_MSC_VER)
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;
#endif
adding it to sockhelpers.h
and caster.h
brought me here....
[...]
link -nologo -subsystem:windows -dll -LTCG -incremental:no -opt:ref -release -MACHINE:X64 -out:reccaster.dll -implib:reccaster.lib sockhelpers.obj caster.obj castudp.obj casttcp.obj castinit.obj dbcb.obj C:/EPICS/epics-base/lib/windows-x64/dbRecStd.lib C:/EPICS/epics-base/lib/windows-x64/dbCore.lib C:/EPICS/epics-base/lib/windows-x64/ca.lib C:/EPICS/epics-base/lib/windows-x64/Com.lib
Creating library reccaster.lib and object reccaster.exp
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_WSAGetLastError
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_ioctlsocket
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_sendto
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_htonl
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_getsockopt
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_recv
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_recvfrom
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_connect
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_send
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_getsockname
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_WSASetLastError
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_listen
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_select
sockhelpers.obj : error LNK2001: unresolved external symbol __imp_bind
sockhelpers.obj : error LNK2001: unresolved external symbol __WSAFDIsSet
caster.obj : error LNK2001: unresolved external symbol __imp_htons
caster.obj : error LNK2001: unresolved external symbol __imp_ntohs
caster.obj : error LNK2001: unresolved external symbol __imp_ntohl
dbcb.obj : error LNK2001: unresolved external symbol __imp_gethostname
reccaster.dll : fatal error LNK1120: 19 unresolved externals
make[3]: *** [C:/EPICS/epics-base/configure/RULES_BUILD:316: reccaster.dll] Error 1120
make[3]: Leaving directory 'C:/EPICS/epics-support/recsync/client/castApp/src/O.windows-x64'
make[2]: *** [C:/EPICS/epics-base/configure/RULES_ARCHS:58: install.windows-x64] Error 2
make[2]: Leaving directory 'C:/EPICS/epics-support/recsync/client/castApp/src'
make[1]: *** [C:/EPICS/epics-base/configure/RULES_DIRS:85: src.install] Error 2
make[1]: Leaving directory 'C:/EPICS/epics-support/recsync/client/castApp'
make: *** [C:/EPICS/epics-base/configure/RULES_DIRS:85: castApp.install] Error 2
C:\EPICS\epics-support\recsync\client>
ok it compiles now.
I had to add reccaster_SYS_LIBS_WIN32 += ws2_32
to the src Makefile aswell to have it load windows' winsock2 library...
can we create a PR with these changes?
Please go ahead and make a PR
its already there: #63
got merged.
Hello, when building on windows with MSVC and under EPICS 7, I end up with a bunch of errors ...
is this a known phenomenon or is reccaster client incompatible with windows somehow?
thanks, W.