EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Macro definitions for compiling areaDetector R3.3.2
From: "Li, Ji" <[email protected]>
To: Mark Rivers <[email protected]>, "[email protected]" <[email protected]>
Date: Tue, 28 Aug 2018 20:45:25 +0000

That solved the problem. Thank you Mark.

 

-Ji

 

From: Mark Rivers <[email protected]>
Sent: Tuesday, August 28, 2018 3:48 PM
To: Li, Ji <[email protected]>; [email protected]
Subject: RE: Macro definitions for compiling areaDetector R3.3.2

 

Hi Ji Li,

 

I'm compiling areaDetector R3.3.2 on a Windows 10 machine. Macros (EPICS_BASE, ADCORE, ...) are defined at areaDetector level (e.g., EPICS_BASE in areaDetector-R3-3-2\configure\RELEASE_SUPPORT.local, ADCORE in areaDetector-R3-3-2\configure\RELEASE_LIBS.local) as instructed.

 

Did you also define everything in RELEASE_PRODS.local, based on EXAMPLE_RELEASE_PRODS.local?  It looks like the problem is that ADCORE is not defined in RELEASE_PRODS.local.

 

I change $(ADCORE) to the full path to ADCore, and the error disappeared. But new errors appeared:

 

Where did you change that?   In NDDriverStdArraysApp\src\Makefile?  If so, that is not correct.  ADCORE should be defined in areaDetector\configure\ RELEASE_PRODS.local.

 

link -nologo   -incremental:no -opt:ref -release  -MACHINE:X64              -out:NDDriverStdArraysApp.exe        NDDriverStdArraysApp_registerRecordDeviceDriver.obj NDDriverStdArraysAppMain.obj     ../../../../../lib/windows-x64-static/NDDriverStdArrays.lib  ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib

NDDriverStdArraysApp_registerRecordDeviceDriver.obj : error LNK2019: unresolved external symbol iocshRegister referenced in function "int __cdecl Registration(void)" (?Registration@@YAHXZ)

NDDriverStdArrays.lib(NDDriverStdArrays.obj) : error LNK2001: unresolved external symbol iocshRegister NDDriverStdArraysApp_registerRecordDeviceDriver.obj : error LNK2019: unresolved external symbol iocshRegisterCommon referenced in function "int __cdecl Registration(void)" (?Registration@@YAHXZ) NDDriverStdArraysApp_registerRecordDeviceDriver.obj : error LNK2019: unresolved external symbol iocshPpdbbase referenced in function rrddCallFunc ...

 

If you look at the link command you will see that it is not linking with lots of needed libraries, like EPICS base, asyn, etc.  I suspect your problem is in RELEASE_PRODS.local.

 

Mark

 

 

-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Li, Ji
Sent: Tuesday, August 28, 2018 12:19 PM
To: [email protected]
Subject: Macro definitions for compiling areaDetector R3.3.2

 

Hi All,

 

I'm compiling areaDetector R3.3.2 on a Windows 10 machine. Macros (EPICS_BASE, ADCORE, ...) are defined at areaDetector level (e.g., EPICS_BASE in areaDetector-R3-3-2\configure\RELEASE_SUPPORT.local, ADCORE in areaDetector-R3-3-2\configure\RELEASE_LIBS.local) as instructed.

 

When compiling modules, it looks these definitions are removed as the compiler complains unable to find some files. For example, when compiling NDDriverStdArrays:

 

=========================================

...

make -C ./src install

make[5]: Entering directory 'C:/EPICS/synApps-6-0/support/areaDetector-R3-3-2/NDDriverStdArrays/iocs/NDDriverStdArraysIOC/NDDriverStdArraysApp/src'

Makefile:27: /ADApp/commonDriverMakefile: No such file or directory

make[5]: *** No rule to make target '/ADApp/commonDriverMakefile'.  Stop.

...

=========================================

 

In areaDetector-R3-3-2\NDDriverStdArrays\iocs\NDDriverStdArraysIOC\NDDriverStdArraysApp\src\Makefile, the file was included as:

 

=========================================

include $(ADCORE)/ADApp/commonDriverMakefile

=========================================

 

I change $(ADCORE) to the full path to ADCore, and the error disappeared. But new errors appeared:

 

=========================================

...

make[6]: Entering directory 'C:/EPICS/synApps-6-0/support/areaDetector-R3-3-2/NDDriverStdArrays/iocs/NDDriverStdArraysIOC/NDDriverStdArraysApp/src/O.windows-x64-static'

Creating dbd file NDDriverStdArraysApp.dbd

perl -CSD C:/EPICS/base-7.0.1.1/bin/windows-x64-static/dbdExpand.pl   -I. -I.. -I../O.Common -I../../../dbd -I../../../../../dbd -IC:/EPICS/base-7.0.1.1/dbd -o NDDriverStdArraysApp.dbd NDDriverStdArraysSupport.dbd

perl -CSD C:/EPICS/base-7.0.1.1/bin/windows-x64-static/registerRecordDeviceDriver.pl   -I. -I.. -I../O.Common -I../../../dbd -I../../../../../dbd -IC:/EPICS/base-7.0.1.1/dbd    -o NDDriverStdArraysApp_registerRecordDeviceDriver.cpp ../O.Common/NDDriverStdArraysApp.dbd NDDriverStdArraysApp_registerRecordDeviceDriver C:/EPICS/synApps-6-0/support/areaDetector-R3-3-2/NDDriverStdArrays/iocs/NDDriverStdArraysIOC

perl -CSD C:/EPICS/base-7.0.1.1/bin/windows-x64-static/mkmf.pl  -m NDDriverStdArraysApp_registerRecordDeviceDriver.d -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/msvc -I../../../include/os/WIN32 -I../../../include   -I../../../../../include -IC:/EPICS/base-7.0.1.1/include/compiler/msvc -IC:/EPICS/base-7.0.1.1/include/os/WIN32 -IC:/EPICS/base-7.0.1.1/include           NDDriverStdArraysApp_registerRecordDeviceDriver.obj NDDriverStdArraysApp_registerRecordDeviceDriver.cpp

Installing created dbd file ../../../dbd/NDDriverStdArraysApp.dbd

cl -EHsc -GR               -nologo -D__STDC__=0 -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE   -Ox -Oy-   -W3 -w44355 -w44344 -w44251        -MT  -TP  -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/msvc -I../../../include/os/WIN32 -I../../../include   -I../../../../../include -IC:/EPICS/base-7.0.1.1/include/compiler/msvc -IC:/EPICS/base-7.0.1.1/include/os/WIN32 -IC:/EPICS/base-7.0.1.1/include           -c NDDriverStdArraysApp_registerRecordDeviceDriver.cpp

NDDriverStdArraysApp_registerRecordDeviceDriver.cpp

link -nologo   -incremental:no -opt:ref -release  -MACHINE:X64              -out:NDDriverStdArraysApp.exe        NDDriverStdArraysApp_registerRecordDeviceDriver.obj NDDriverStdArraysAppMain.obj     ../../../../../lib/windows-x64-static/NDDriverStdArrays.lib  ws2_32.lib advapi32.lib user32.lib kernel32.lib winmm.lib

NDDriverStdArraysApp_registerRecordDeviceDriver.obj : error LNK2019: unresolved external symbol iocshRegister referenced in function "int __cdecl Registration(void)" (?Registration@@YAHXZ)

NDDriverStdArrays.lib(NDDriverStdArrays.obj) : error LNK2001: unresolved external symbol iocshRegister NDDriverStdArraysApp_registerRecordDeviceDriver.obj : error LNK2019: unresolved external symbol iocshRegisterCommon referenced in function "int __cdecl Registration(void)" (?Registration@@YAHXZ) NDDriverStdArraysApp_registerRecordDeviceDriver.obj : error LNK2019: unresolved external symbol iocshPpdbbase referenced in function rrddCallFunc ...

=========================================

 

I removed NDDriverStdArrays from the compiling list in the areaDetector-R3-3-2\configure\RELEASE.local and then same errors occurred when compiling another module (pvaDriver).

 

I don't think it the right way to find all the definitions that cause such errors and change them manually. Did I missed some configurations?

 

Thanks.

 

-Ji Li


References:
Macro definitions for compiling areaDetector R3.3.2 Li, Ji
RE: Macro definitions for compiling areaDetector R3.3.2 Mark Rivers

Navigate by Date:
Prev: RE: Macro definitions for compiling areaDetector R3.3.2 Mark Rivers
Next: RE: Virtual circuit unresponsive on CA Gateway 윤상원
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Macro definitions for compiling areaDetector R3.3.2 Mark Rivers
Next: dbExpand.pl: cannot set PHAS to '' Benjamin Franksen
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 29 Aug 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·