EPICS-synApps / support

APS BCDA synApps module: support
http://epics-synapps.github.io/support/
Other
3 stars 12 forks source link

Fixes for areaDetector #14

Closed MarkRivers closed 4 years ago

MarkRivers commented 4 years ago

This greatly simplifies the install for areaDetector, mainly by using sed to edit files rather than creating new versions.

Do not merge yet since I still have some issues.

MarkRivers commented 4 years ago

With this new version of assemble_synApps.sh I have tested with base 7.0.3. I believe it will work the same on 3.15.6 because I have set WITH_PVA=NO. I had no problems on linux-x86 or vxWorks-ppc32. It builds the ADSimDetector IOC.

On linux-x86_64 I ran into this error in the final step of linking xxxApp.

corvette:xxx-R6-1/xxxApp/src>make
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
    T_A=linux-x86_64 install
make[1]: Entering directory `/home/epics/scratch/synApps/support/synApps/support/xxx-R6-1/xxxApp/src/O.linux-x86_64'
/usr/bin/g++ -o xxx  
-L/home/epics/scratch/synApps/support/synApps/support/xxx-R6-1/lib/linux-x86_64 
-L/usr/local/epics-devel/base-7.0.3/lib/linux-x86_64
-L/home/epics/scratch/synApps/support/synApps/support/StreamDevice-2-8-9/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/Yokogawa_DAS-R2-0-1/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/alive-R1-1-1/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/asyn-R4-36/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/autosave-R5-10/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/busy-R1-7-2/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/calc-R3-7-3/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/caputRecorder-R1-7-2/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/dac128V-R2-9/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/delaygen-R1-2-1/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/dxp-R6-0/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/iocStats-3-1-16/lib/linux-x86_64
-L/home/epics/scratch/synApps/support/synApps/support/ip-R2-20-1/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/ip330-R2-9/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/ipUnidig-R2-11/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/ipac-2-15/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/lua-R2-0/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/modbus-R3-0/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/optics-R2-13-3/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/quadEM-R9-2-1/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/seq-2-2-6/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/softGlue-R2-8-2/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/softGlueZynq-R2-0-2/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/sscan-R2-11-3/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/std-R3-6/lib/linux-x86_64 
-L/home/epics/scratch/synApps/support/synApps/support/vac-R1-9/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/xxx-R6-1/lib/linux-x86_64 
-Wl,-rpath,/usr/local/epics-devel/base-7.0.3/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/StreamDevice-2-8-9/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/Yokogawa_DAS-R2-0-1/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/alive-R1-1-1/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/asyn-R4-36/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/autosave-R5-10/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/busy-R1-7-2/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/calc-R3-7-3/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/caputRecorder-R1-7-2/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/dac128V-R2-9/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/delaygen-R1-2-1/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/dxp-R6-0/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/iocStats-3-1-16/lib/linux-x86_64
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/ip-R2-20-1/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/ip330-R2-9/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/ipUnidig-R2-11/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/ipac-2-15/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/lua-R2-0/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/modbus-R3-0/lib/linux-x86_64
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/optics-R2-13-3/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/quadEM-R9-2-1/lib/linux-x86_64
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/seq-2-2-6/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/softGlue-R2-8-2/lib/linux-x86_64
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/softGlueZynq-R2-0-2/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/sscan-R2-11-3/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/std-R3-6/lib/linux-x86_64 
-Wl,-rpath,/home/epics/scratch/synApps/support/synApps/support/vac-R1-9/lib/linux-x86_64
-rdynamic -m64         iocxxxLinux_registerRecordDeviceDriver.o xxxMain.o    
-lmw100 -lsoftGlueZynq -lsoftGlue -lip330 -ldac128V -lipUnidig -lIpac -ldxp -lhandel -lvac 
-ldelaygen -lalive -ldevIocStats -lstream -lParker -lSmartMotor -lThorLabs -lsoftMotor 
-lmotorSimSupport -lMclennan -lMicos -lMicroMo -lNewFocus -lNewport -lOriel -lPI -lPIJena -lAcs 
-lacsTech80 -lAerotech -lAttocube -lFaulhaber -lIms -lKohzuMotor -lmotor -lmodbus -llua -lip 
-lquadEM -lmca -loptics -lautosave -lscanProgress -lsscan -lbusy -lcalc -lstd -lasyn -lseq -lpv 
-lcaputRecorder -ldbRecStd -ldbCore -lca -lCom  -lusb
//home/epics/scratch/synApps/support/synApps/support/areaDetector-R3-7/ADSupport/lib/linux-x86_64/libNeXus.so:
undefined reference to `H5P_CLS_DATASET_CREATE_ID_g'
//home/epics/scratch/synApps/support/synApps/support/areaDetector-R3-7/ADSupport/lib/linux-x86_64/libNeXus.so: 
undefined reference to `H5P_CLS_FILE_ACCESS_ID_g'
collect2: error: ld returned 1 exit status
make[1]: *** [xxx] Error 1
make[1]: Leaving directory `/home/epics/scratch/synApps/support/synApps/support/xxx-R6-1/xxxApp/src/O.linux-x86_64'
make: *** [install.linux-x86_64] Error 2

I am having trouble figuring this out. Why is XXX linking with libNexus? I don't see it in the Makefile. If it is linking with libNexus it also needs to link with libhdf5.

MarkRivers commented 4 years ago

In order to build on Windows in the same tree that I built for Linux I had to do the following:

It built the ADsimDetector IOC fine. It gave the following error building the xxx executable;

J:\epics\scratch\synApps\support\synApps\support\xxx-R6-1\xxxApp\src>make
make -C O.windows-x64-static -f ../Makefile TOP=../../.. \
    T_A=windows-x64-static install
make[1]: Entering directory 'J:/epics/scratch/synApps/support/synApps/support/xxx-R6-1/xxxApp/src/O.windows-x64-static'
link -nologo   -incremental:no -opt:ref -release  -MACHINE:X64              -out:xxx.exe
   iocxxxWin64_registerRecordDeviceDriver.obj xxxMain.obj    
J:/epics/scratch/synApps/support/synApps/support/dxpSITORO-R1-2/lib/windows-x64-static/dxpSITORO.lib  
J:/epics/scratch/synApps/support/synApps/support/dxpSITORO-R1-2/lib/windows-x64-static/handelSITORO.lib  
J:/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/windows-x64-static/libusb-1.0.lib 
J:/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/windows-x64-static/mcaAmptek.lib  
J:/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/windows-x64-static/wpcap.lib  
J:/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/windows-x64-static/Packet.lib  
J:/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/windows-x64-static/mcaCanberra.lib  
J:/epics/scratch/synApps/support/synApps/support/measComp-R2-3/lib/windows-x64-static/cbw64.lib  
J:/epics/scratch/synApps/support/synApps/support/measComp-R2-3/lib/windows-x64-static/measComp.lib  
J:/epics/scratch/synApps/support/synApps/support/vac-R1-9/lib/windows-x64-static/vac.lib  
J:/epics/scratch/synApps/support/synApps/support/delaygen-R1-2-1/lib/windows-x64-static/delaygen.lib  
J:/epics/scratch/synApps/support/synApps/support/alive-R1-1-1/lib/windows-x64-static/alive.lib  
J:/epics/scratch/synApps/support/synApps/support/iocStats-3-1-16/lib/windows-x64-static/devIocStats.lib  
J:/epics/scratch/synApps/support/synApps/support/StreamDevice-2-8-9/lib/windows-x64-static/stream.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Parker.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/SmartMotor.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/ThorLabs.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/softMotor.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/motorSimSupport.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Mclennan.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Micos.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/MicroMo.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/NewFocus.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Newport.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Oriel.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/PI.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/PIJena.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Acs.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/acsTech80.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Aerotech.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Attocube.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Faulhaber.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/Ims.lib  
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/KohzuMotor.lib 
J:/epics/scratch/synApps/support/synApps/support/motor-R7-1/lib/windows-x64-static/motor.lib  
J:/epics/scratch/synApps/support/synApps/support/modbus-R3-0/lib/windows-x64-static/modbus.lib  
J:/epics/scratch/synApps/support/synApps/support/lua-R2-0/lib/windows-x64-static/lua.lib  
J:/epics/scratch/synApps/support/synApps/support/ip-R2-20-1/lib/windows-x64-static/ip.lib  
J:/epics/scratch/synApps/support/synApps/support/quadEM-R9-2-1/lib/windows-x64-static/quadEM.lib  
J:/epics/scratch/synApps/support/synApps/support/mca-R7-8/lib/windows-x64-static/mca.lib  
J:/epics/scratch/synApps/support/synApps/support/optics-R2-13-3/lib/windows-x64-static/optics.lib  
J:/epics/scratch/synApps/support/synApps/support/autosave-R5-10/lib/windows-x64-static/autosave.lib  
J:/epics/scratch/synApps/support/synApps/support/sscan-R2-11-3/lib/windows-x64-static/scanProgress.lib  J
:/epics/scratch/synApps/support/synApps/support/sscan-R2-11-3/lib/windows-x64-static/sscan.lib  
J:/epics/scratch/synApps/support/synApps/support/busy-R1-7-2/lib/windows-x64-static/busy.lib  
J:/epics/scratch/synApps/support/synApps/support/calc-R3-7-3/lib/windows-x64-static/calc.lib  
J:/epics/scratch/synApps/support/synApps/support/std-R3-6/lib/windows-x64-static/std.lib  
J:/epics/scratch/synApps/support/synApps/support/asyn-R4-36/lib/windows-x64-static/asyn.lib  
J:/epics/scratch/synApps/support/synApps/support/seq-2-2-6/lib/windows-x64-static/seq.lib  
J:/epics/scratch/synApps/support/synApps/support/seq-2-2-6/lib/windows-x64-static/pv.lib  
J:/epics/scratch/synApps/support/synApps/support/caputRecorder-R1-7-2/lib/windows-x64-static/caputRecorder.lib  
H:/epics-devel/base-7.0.3/lib/windows-x64-static/dbRecStd.lib  
H:/epics-devel/base-7.0.3/lib/windows-x64-static/dbCore.lib  
H:/epics-devel/base-7.0.3/lib/windows-x64-static/ca.lib  
H:/epics-devel/base-7.0.3/lib/windows-x64-static/Com.lib  
netapi32.lib ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib
   Creating library xxx.lib and object xxx.exp
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: class NDAttribute * __cdecl NDAttributeList::add(char const *,char const *,enum NDAttrDataType_t,void *)" (?add@NDAttributeList@@QEAAPEAVNDAttribute@@PEBD0W4NDAttrDataType_t@@PEAX@Z) referenced in function "public: enum asynStatus __cdecl NDDxp::getMappingData(void)" (?getMappingData@NDDxp@@QEAA?AW4asynStatus@@XZ)
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: int __cdecl NDArray::release(void)" (?release@NDArray@@QEAAHXZ) referenced in function "public: enum asynStatus __cdecl NDDxp::getMappingData(void)" (?getMappingData@NDDxp@@QEAA?AW4asynStatus@@XZ)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: int __cdecl NDArray::release(void)" (?release@NDArray@@QEAAHXZ)
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: class NDArray * __cdecl NDArrayPool::alloc(int,unsigned __int64 *,enum NDDataType_t,unsigned __int64,void *)" (?alloc@NDArrayPool@@QEAAPEAVNDArray@@HPEA_KW4NDDataType_t@@_KPEAX@Z) referenced in function "public: enum asynStatus __cdecl NDDxp::getMappingData(void)" (?getMappingData@NDDxp@@QEAA?AW4asynStatus@@XZ)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: class NDArray * __cdecl NDArrayPool::alloc(int,unsigned __int64 *,enum NDDataType_t,unsigned __int64,void *)" (?alloc@NDArrayPool@@QEAAPEAVNDArray@@HPEA_KW4NDDataType_t@@_KPEAX@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: __cdecl asynNDArrayDriver::asynNDArrayDriver(char const *,int,int,unsigned __int64,int,int,int,int,int,int)" (??0asynNDArrayDriver@@QEAA@PEBDHH_KHHHHHH@Z) referenced in function "public: __cdecl NDDxp::NDDxp(char const *,int,int,unsigned __int64)" (??0NDDxp@@QEAA@PEBDHH_K@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: __cdecl asynNDArrayDriver::asynNDArrayDriver(char const *,int,int,unsigned __int64,int,int,int,int,int,int)" (??0asynNDArrayDriver@@QEAA@PEBDHH_KHHHHHH@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: virtual __cdecl asynNDArrayDriver::~asynNDArrayDriver(void)" (??1asynNDArrayDriver@@UEAA@XZ) referenced in function "int `public: __cdecl NDDxp::NDDxp(char const *,int,int,unsigned __int64)'::`1'::dtor$0" (?dtor$0@?0???0NDDxp@@QEAA@PEBDHH_K@Z@4HA)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual __cdecl asynNDArrayDriver::~asynNDArrayDriver(void)" (??1asynNDArrayDriver@@UEAA@XZ)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual __cdecl asynNDArrayDriver::~asynNDArrayDriver(void)" (??1asynNDArrayDriver@@UEAA@XZ)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual __cdecl asynNDArrayDriver::~asynNDArrayDriver(void)" (??1asynNDArrayDriver@@UEAA@XZ)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeOctet(struct asynUser *,char const *,unsigned __int64,unsigned __int64 *)" (?writeOctet@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEBD_KPEA_K@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeOctet(struct asynUser *,char const *,unsigned __int64,unsigned __int64 *)" (?writeOctet@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEBD_KPEA_K@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeOctet(struct asynUser *,char const *,unsigned __int64,unsigned __int64 *)" (?writeOctet@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEBD_KPEA_K@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeOctet(struct asynUser *,char const *,unsigned __int64,unsigned __int64 *)" (?writeOctet@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEBD_KPEA_K@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readGenericPointer(struct asynUser *,void *)" (?readGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readGenericPointer(struct asynUser *,void *)" (?readGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readGenericPointer(struct asynUser *,void *)" (?readGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readGenericPointer(struct asynUser *,void *)" (?readGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeGenericPointer(struct asynUser *,void *)" (?writeGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeGenericPointer(struct asynUser *,void *)" (?writeGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeGenericPointer(struct asynUser *,void *)" (?writeGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeGenericPointer(struct asynUser *,void *)" (?writeGenericPointer@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAX@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::writeInt32(struct asynUser *,int)" (?writeInt32@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@H@Z) referenced in function "public: virtual enum asynStatus __cdecl NDDxp::writeInt32(struct asynUser *,int)" (?writeInt32@NDDxp@@UEAA?AW4asynStatus@@PEAUasynUser@@H@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readInt32(struct asynUser *,int *)" (?readInt32@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAH@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readInt32(struct asynUser *,int *)" (?readInt32@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAH@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readInt32(struct asynUser *,int *)" (?readInt32@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAH@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readInt32(struct asynUser *,int *)" (?readInt32@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAH@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readFloat64(struct asynUser *,double *)" (?readFloat64@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAN@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readFloat64(struct asynUser *,double *)" (?readFloat64@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAN@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readFloat64(struct asynUser *,double *)" (?readFloat64@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAN@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readFloat64(struct asynUser *,double *)" (?readFloat64@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAUasynUser@@PEAN@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2019: unresolved external symbol "public: virtual void __cdecl asynNDArrayDriver::report(struct _iobuf *,int)" (?report@asynNDArrayDriver@@UEAAXPEAU_iobuf@@H@Z) referenced in function "public: virtual void __cdecl NDDxp::report(struct _iobuf *,int)" (?report@NDDxp@@UEAAXPEAU_iobuf@@H@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl asynNDArrayDriver::report(struct _iobuf *,int)" (?report@asynNDArrayDriver@@UEAAXPEAU_iobuf@@H@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl asynNDArrayDriver::report(struct _iobuf *,int)" (?report@asynNDArrayDriver@@UEAAXPEAU_iobuf@@H@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual void __cdecl asynNDArrayDriver::report(struct _iobuf *,int)" (?report@asynNDArrayDriver@@UEAAXPEAU_iobuf@@H@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFilePath(char const *,int)" (?createFilePath@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEBDH@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFilePath(char const *,int)" (?createFilePath@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEBDH@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFilePath(char const *,int)" (?createFilePath@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEBDH@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFilePath(char const *,int)" (?createFilePath@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEBDH@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::checkPath(void)" (?checkPath@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::checkPath(void)" (?checkPath@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::checkPath(void)" (?checkPath@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::checkPath(void)" (?checkPath@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl asynNDArrayDriver::checkPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?checkPath@asynNDArrayDriver@@UEAA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl asynNDArrayDriver::checkPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?checkPath@asynNDArrayDriver@@UEAA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl asynNDArrayDriver::checkPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?checkPath@asynNDArrayDriver@@UEAA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual bool __cdecl asynNDArrayDriver::checkPath(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &)" (?checkPath@asynNDArrayDriver@@UEAA_NAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD0@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD0@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD0@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::createFileName(int,char *,char *)" (?createFileName@asynNDArrayDriver@@UEAA?AW4asynStatus@@HPEAD0@Z)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readNDAttributesFile(void)" (?readNDAttributesFile@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readNDAttributesFile(void)" (?readNDAttributesFile@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readNDAttributesFile(void)" (?readNDAttributesFile@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::readNDAttributesFile(void)" (?readNDAttributesFile@asynNDArrayDriver@@UEAA?AW4asynStatus@@XZ)
dxpSITORO.lib(NDDxp.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::getAttributes(class NDAttributeList *)" (?getAttributes@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAVNDAttributeList@@@Z)
quadEM.lib(drvAHxxx.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::getAttributes(class NDAttributeList *)" (?getAttributes@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAVNDAttributeList@@@Z)
quadEM.lib(drvTetrAMM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::getAttributes(class NDAttributeList *)" (?getAttributes@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAVNDAttributeList@@@Z)
quadEM.lib(drvQuadEM.obj) : error LNK2001: unresolved external symbol "public: virtual enum asynStatus __cdecl asynNDArrayDriver::getAttributes(class NDAttributeList *)" (?getAttributes@asynNDArrayDriver@@UEAA?AW4asynStatus@@PEAVNDAttributeList@@@Z)
xxx.exe : fatal error LNK1120: 19 unresolved externals
make[1]: *** [H:/epics-devel/base-7.0.3/configure/RULES_BUILD:207: xxx.exe] Error 1120
make[1]: Leaving directory 'J:/epics/scratch/synApps/support/synApps/support/xxx-R6-1/xxxApp/src/O.windows-x64-static'
make: *** [H:/epics-devel/base-7.0.3/configure/RULES_ARCHS:58: install.windows-x64-static] Error 2

J:\epics\scratch\synApps\support\synApps\support\xxx-R6-1\xxxApp\src>
MarkRivers commented 4 years ago

I have solved both the linux-x86_64 and windows-x64-static build problems in XXX with the same solution.

support/configure/RELEASE needs these 2 lines after the definition of AREA_DETECTOR:

ADCORE=$(AREA_DETECTOR)/ADCore
ADSUPPORT=$(AREA_DETECTOR)/ADSupport

With those lines XXX builds fine for all the archs I tested.

This is a bug, because if XXX uses DXP or QUADEM it needs to link with ADCore and ADSupport.

MarkRivers commented 4 years ago

This is now working. These are the changes I made to assemble_synApps.sh

With this version I was able to build everything including xxx on linux-x64_64 and windows-x64-static. For Windows I had to create:

In the future I should be able to change areaDetector so the latter 2 files are not needed, and it reads support/configure/RELEASE.$(EPICS_HOST_ARCH).local instead. Once all EPICS modules include that file then the files in support/configure/ above will also no longer be needed.