NSLS-II / ADKinetix

EPICS areaDetector driver for communicating with Teledyne Kinetix cameras
2 stars 3 forks source link

windows compilation #5

Closed LeeYangLBLBCS closed 2 weeks ago

LeeYangLBLBCS commented 1 month ago

from the commit history , it appears that  windows is supported.  But I tried to compile in Windows, getting failure.  
================================================
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix>gmake
gmake -C ./configure install
gmake[1]: Entering directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/configure'
gmake -C O.windows-x64-static -f ../Makefile TOP=../.. \
    T_A=windows-x64-static install
gmake[2]: Entering directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/configure/O.windows-x64-static'
perl -CSD C:/epics/base-7.0.4/bin/windows-x64-static/convertRelease.pl checkRelease
gmake[2]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/configure/O.windows-x64-static'
gmake[1]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/configure'
gmake -C ./kinetixSupport install
gmake[1]: Entering directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixSupport'
gmake -C O.windows-x64-static -f ../Makefile TOP=../.. \
    T_A=windows-x64-static install
gmake[2]: Entering directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixSupport/O.windows-x64-static'
gmake[2]: *** No rule to make target '../os/WIN32/pv_icl32.lib', needed by '../../lib/windows-x64-static/pv_icl32.lib'.  Stop.
gmake[2]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixSupport/O.windows-x64-static'
gmake[1]: *** [C:/epics/base-7.0.4/configure/RULES_ARCHS:58: install.windows-x64-static] Error 2
gmake[1]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixSupport'
gmake: *** [C:/epics/base-7.0.4/configure/RULES_DIRS:85: kinetixSupport.install] Error 2
jwlodek commented 1 month ago

Hi, I think I have resolved this with the most recent commit. Could you please try again? It was a leftover from when the driver was linking to an older version of the library than what is now included.

LeeYangLBLBCS commented 1 month ago

I pulled in the latest version:
==============================
$ git log
commit 31c448c3d862c2f5dc812cd2a5c98b0954fdadd1 (HEAD -> main, origin/main, origin/HEAD)
Author: Jakub Wlodek <jwlodek@bnl.gov>
Date:   Thu Jul 18 09:38:24 2024 -0400

    Remove installation of non longer needed static lib file on windows
======================================================
linker error: ADKinetix.obj : error LNK2001: unresolved external symbol pasynTrace
seems to indicate it's trying to link to something from asyn?
======last few lines of compiler output attached below================
gmake[3]: Entering directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixApp/src/O.windows-x64'
perl -CSD C:/epics/base-7.0.4/bin/windows-x64/mkmf.pl  -m ADKinetix.d -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/msvc -I../../../include/os/WIN32 -I../../../include      -IC:/epics/modules/synApps_6_1_epics7/support/asyn-R4-38/include     -IC:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/include/os/WIN32 -IC:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/include   -IC:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADCore/include -IC:/epics/base-7.0.4/include/compiler/msvc -IC:/epics/base-7.0.4/include/os/WIN32 -IC:/epics/base-7.0.4/include        ADKinetix.obj ../ADKinetix.cpp
"Installing dbd file ../../../dbd/kinetixSupport.dbd"
mkdir ../../../dbd
cl -EHsc -GR               -nologo -FC -D__STDC__=0 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE    -Ox -GL -Oy-   -W3 -w44355 -w44344 -w44251     -D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING -DWIN32 -DH5_BUILT_AS_DYNAMIC_LIB    -MD -DEPICS_BUILD_DLL -DEPICS_CALL_DLL -TP  -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/msvc -I../../../include/os/WIN32 -I../../../include      -IC:/epics/modules/synApps_6_1_epics7/support/asyn-R4-38/include     -IC:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/include/os/WIN32 -IC:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/include   -IC:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADCore/include -IC:/epics/base-7.0.4/include/compiler/msvc -IC:/epics/base-7.0.4/include/os/WIN32 -IC:/epics/base-7.0.4/include        -c ../ADKinetix.cpp
ADKinetix.cpp
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(573): warning C4101: 'interfaceId': unreferenced local variable
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(655): warning C4101: 'acquiring': unreferenced local variable
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(697): warning C4101: 'acquisitionMode': unreferenced local variable
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(901): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(902): warning C4267: 'argument': conversion from 'size_t' to 'int', possible loss of data
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(782): warning C4101: 'acquiring': unreferenced local variable
C:\epics\modules\synApps_6_1_epics7\support\areaDetector-R3-7\ADKinetix\kinetixApp\src\ADKinetix.cpp(975): warning C4101: 'detectorStatus': unreferenced local variable
link -nologo -subsystem:windows -dll -LTCG -incremental:no -opt:ref -release  -MACHINE:X64      -out:ADKinetix.dll -implib:ADKinetix.lib     ADKinetix.obj      C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADCore/lib/windows-x64/ADBase.lib  C:/epics/modules/synApps_6_1_epics7/support/asyn-R4-38/lib/windows-x64/asyn.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADCore/lib/windows-x64/ntndArrayConverter.lib  C:/epics/base-7.0.4/lib/windows-x64/nt.lib  C:/epics/base-7.0.4/lib/windows-x64/pvDatabase.lib  C:/epics/base-7.0.4/lib/windows-x64/pvAccess.lib  C:/epics/base-7.0.4/lib/windows-x64/pvData.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/netCDF.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/Magick++.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/coders.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/Magick.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/jbig.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/jp2.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/bzlib.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/png.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/webp.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/lcms.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/ttf.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/wmf.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/filters.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/tiff.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/xml2.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/NeXus.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/hdf5.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/hdf5_hl.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/bitshuffle.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/blosc.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/szip.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/zlib.lib  C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/lib/windows-x64/jpeg.lib  C:/epics/base-7.0.4/lib/windows-x64/dbRecStd.lib  C:/epics/base-7.0.4/lib/windows-x64/dbCore.lib  C:/epics/base-7.0.4/lib/windows-x64/ca.lib  C:/epics/base-7.0.4/lib/windows-x64/Com.lib  ../../../lib/windows-x64/pvcam64.lib gdi32.lib oleaut32.lib
   Creating library ADKinetix.lib and object ADKinetix.exp
ADKinetix.obj : error LNK2001: unresolved external symbol pasynTrace
ADKinetix.dll : fatal error LNK1120: 1 unresolved externals
gmake[3]: *** [C:/epics/base-7.0.4/configure/RULES_BUILD:298: ADKinetix.dll] Error 1120
gmake[3]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixApp/src/O.windows-x64'
gmake[2]: *** [C:/epics/base-7.0.4/configure/RULES_ARCHS:58: install.windows-x64] Error 2
gmake[2]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixApp/src'
gmake[1]: *** [C:/epics/base-7.0.4/configure/RULES_DIRS:85: src.install] Error 2
gmake[1]: Leaving directory 'C:/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADKinetix/kinetixApp'
gmake: *** [C:/epics/base-7.0.4/configure/RULES_DIRS:85: kinetixApp.install] Error 2
jwlodek commented 1 month ago

I cannot seem to reproduce this problem:

C:\EPICS\utils\windows-epics-config\BUILD\support\areaDetector\ADKinetix>make -sj

C:\EPICS\utils\windows-epics-config\BUILD\support\areaDetector\ADKinetix>echo %EPICS_HOST_ARCH%
windows-x64-static

C:\EPICS\utils\windows-epics-config\BUILD\support\areaDetector\ADKinetix>git log -n 1
error: cannot spawn less: No such file or directory
commit 31c448c3d862c2f5dc812cd2a5c98b0954fdadd1 (HEAD -> main, origin/main, origin/HEAD)
Author: Jakub Wlodek <jwlodek@bnl.gov>
Date:   Thu Jul 18 09:38:24 2024 -0400

    Remove installation of non longer needed static lib file on windows

Since it is asking about linking asyn, are you sure your build environment is correct? Can you build ADSimDetector for example?

LeeYangLBLBCS commented 1 month ago

The compilation succeeded in windows-x64-static after a fresh recompile. The MEDM shows the MAX possible ROI I can achieve, at 2000x2000. The computer is Windows 10 with 64 GB memory. image