I am trying to build the master branch of
https://github.com/epics-extensions/ezcaIDL on windows-x64 with base 7.0.4 and VS 2015. This used to build OK, either on an earlier version of base or VS or both.
This extension builds a shareable library/DLL to call Channel Access from IDL. It depends on extensions/ezca and extensions/EzcaScan. Both of those libraries build fine on Windows.
ezcaIDL builds fine on Linux. However, on Windows I get this:
H:\epics\extensions\src\ezcaIDL>make
make -C O.windows-x64 -f ../Makefile TOP=../../.. \
T_A=windows-x64 install
make[1]: Entering directory 'H:/epics/extensions/src/ezcaIDL/O.windows-x64'
link -nologo -subsystem:windows -dll -LTCG -incremental:no -opt:ref -release -MACHINE:X64 /manifest -out:ezcaIDL.dll -implib:ezcaIDL.lib -def:../ezcaIDL.def ezcaIDL.obj ../../../lib/windows-x64/ezca.lib ../../../lib/windows-x64/EzcaScan.lib
../../../../base/lib/windows-x64/ca.lib ../../../../base/lib/windows-x64/Com.lib ws2_32.lib advapi32.lib user32.lib
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorQueue_Zero' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorQueue_Clear' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorQueue_Add' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorQueue_Get' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaCheckMonitorArray' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaGetMonitorArray' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaClearMonitorArray' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaAddMonitorArray' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorScan_Zero' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorScan_Get' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorScan_Clear' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaMonitorScan_Add' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaPutArrayEventValues' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaPutArrayValues' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaGetArrayEventValues' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaGetArrayTypeCount' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaGetArrayValues' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaGetError' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaSearchList' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaTimeStamp' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaSetPendTime' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaPendEvent' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaInit' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaDebug' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'EzcaVersion' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLAutoErrorMessageOff' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLAutoErrorMessageOn' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLTraceOff' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLTraceOn' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLDebugOff' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLDebugOn' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLEndGroup' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLStartGroup' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetEnumStrings' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLEndGroupWithReport' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetRetryCount' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetTimeout' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLSetRetryCount' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLSetTimeout' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLNewMonitorValue' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLClearMonitor' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLSetMonitor' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetCountAndType' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLPutOldCa' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLPut' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetErrorString' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLPerror' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetUnits' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetStatus' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetPrecision' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetGraphicLimits' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGetControlLimits' specified multiple times; using first specification
ezcaIDL.obj : warning LNK4197: export 'ezcaIDLGet' specified multiple times; using first specification
Creating library ezcaIDL.lib and object ezcaIDL.exp
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_search_list
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_getArrayEvent
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaTraceOn
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetTimeout
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaTraceOff
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_getTypeCount
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaNewMonitorValue
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaSetRetryCount
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaSetMonitor
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaDebugOff
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaEndGroup
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaEndGroupWithReport
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_version
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetPrecision
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_scanClearMonitor
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_scanZeroMonitor
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_monitorArrayCheck
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaPut
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_debug
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaPutOldCa
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetRetryCount
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaPvToChid
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaDebugOn
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_get_error_array
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetGraphicLimits
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetStatus
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetControlLimits
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_queueClear
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaAutoErrorMessageOn
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_queueGet
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_scanGetMonitor
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_putArray
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetErrorString
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_scanAdd
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_setPendTime
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaSetTimeout
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaFree
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_CA
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaClearMonitor
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaAutoErrorMessageOff
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_timeStamp
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_monitorArrayGet
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_getArray
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGet
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_monitorArrayAdd
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_queueAdd
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaStartGroup
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_monitorArrayClear
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_queueZero
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_putArrayEvent
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaGetUnits
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_Ezca_init
ezcaIDL.obj : error LNK2001: unresolved external symbol __imp_ezcaPerror
ezcaIDL.dll : fatal error LNK1120: 53 unresolved externals
make[1]: *** [../../../../base/configure/RULES_BUILD:298: ezcaIDL.dll] Error 1120
make[1]: Leaving directory 'H:/epics/extensions/src/ezcaIDL/O.windows-x64'
make: *** [../../../base/configure/RULES_ARCHS:58: install.windows-x64] Error 2
Note that it uses a .DEF file to define what symbols should be exported.
Has support for that changed? If so, how do I need to do it now?
Thanks,
Mark