This should be fixed in EPICSV4 or subsequent, and was discussed in recent EPICS core developer meeting in ITHER. This is related to splitting pvAccess into 3 libraries.
In the meantime, a fix that worked for me is to include all 3 libraries on line 24 of:
PROD_LIBS += pvAccess
PROD_LIBS += pvAccessIOC pvAccessCA pvAccess
This will allow proper build of all IOC’s build with areaDetector that include EPICSV4.
Date: Wed, 11 Oct 2017 09:17:47 +0000
From: Mark Rivers <firstname.lastname@example.org>
To: 'J?rn Dreyer' <email@example.com>, "firstname.lastname@example.org"
Subject: RE: EPICS areadetecto and EPICSV4
Content-Type: text/plain; charset="utf-8"
I think those definitions need to be in a RELEASE file for the build system to add them to the directories to be searched. My understanding is that RELEASE files are read both by make and by perl, while CONFIG files are read only by
From: J?rn Dreyer [mailto:email@example.com]
Sent: Wednesday, October 11, 2017 4:12 AM
Cc: Mark Rivers
Subject: Re: EPICS areadetecto and EPICSV4
that solved the problem. I'm only puzzled why I can not define those variables in CONFIG_SITE.local. Doing so results in the exact same problem.
Am Mittwoch, 11. Oktober 2017, 11:02:54 CEST schrieb Mark Rivers:
> Hi J?rn,
> Does your IOC configure/RELEASE file define the individual V4 modules?
> It needs to do this:
> If you still have problems please send the complete make output when
> you rebuild your IOC application.
> From: firstname.lastname@example.org [email@example.com] on
> behalf of J?rn Dreyer [firstname.lastname@example.org] Sent: Wednesday, October 11,
> 3:40 AM
> To: email@example.com
> Subject: Re: EPICS areadetecto and EPICSV4
> Hi Mark,
> in the areadetektor I have set up EV4_BASE correctly. Maybe I was not
> clear in my firs mail. I'm developing the IOC outside of the
> areadetector directory structure and thus not using its internal
> config files. But my environment defines EV4_BASE.
> Am Dienstag, 10. Oktober 2017, 14:28:14 CEST schrieb Mark Rivers:
> > HI J?rn,
> > I am successfully doing what you are trying to do using
> > RELEASE*.local files that are identical to the
> > EXAMPLE_RELEASE*.local files in the master branch of areaDetector/configure.
> > I suspect you did not define the path to the V4 libraries in
> > RELEASE_PATHS.local. This is the symbol EV4_BASE. My version of
> > that file contains these lines:
> > # If CONFIG_SITE.local defines WITH_EPICS_V4=YES then define the path here
> > EV4_BASE = /corvette/usr/local/epics-devel/epicsV4/EPICS-CPP-4.6.0
> > RELEASE_LIBS.local contains these lines:
> > # V4 modules.
> > PVCOMMON=$(EV4_BASE)/pvCommonCPP
> > PVACCESS=$(EV4_BASE)/pvAccessCPP
> > PVDATA=$(EV4_BASE)/pvDataCPP
> > PVDATABASE=$(EV4_BASE)/pvDatabaseCPP
> > NORMATIVETYPES=$(EV4_BASE)/normativeTypesCPP
> > Let me know if you still have problems.
> > Mark
> > ________________________________________
> > From:
> > on behalf of J?rn Dreyer [firstname.lastname@example.org] Sent: Tuesday, October
> > 10, 2017
> > 7:14 AM
> > To: email@example.com
> > Subject: EPICS areadetecto and EPICSV4
> > Hi all,
> > I have a probably stupid question concerning the use of EPICS V4 and
> > the areadetector code in an IOC.
> > I'm trying to build an IOC with which I want to readout a GiGE based
> > camera. To do performance comparisons I also want to include the
> > EPICS V4 code. But If I enable WITH_EPICS_V4 in the Makefile, I fail
> > to find the
> > ?../../../lib/linux- x86_64/libpvDatabase.a? The makefile is
> > searching in the wrong directories. I included
> > include $(AREADETECTOR)/ADCore/ADApp/commonDriverMakefile
> > in my IOC makefile. And therein the EPICS V4 libraries are added to
> > PROD_LIBS. What variable do I need to set so that make will find
> > those libraries? If I change PROD_LIBS to PROD_SYS_LIBS, everything
> > compiles fine.
> > With kind regards,
> > J?rn Dreyer
NSLS-II Controls Group
Brookhaven National Laboratory
(p) +1 (631) 344 5283
(f) +1 (631) 344 8085