From: <dav...@di...> - 2013-08-29 08:16:53
|
Hi Greg, The second is error is because you haven't built pvIOCCPP. Remember pvaSrv still has dependency on this - that's why it's in the release. I've had a quick look at the configure/RELEASE in pvIOCCPP and it does explain this. The correct thing to do is to put the locations of the other libraries on which a module is dependent in each module's RELEASE.local: EPICS Base for pvCommon Base + pvCommon for pvData, Base + pvCommon + pvData for pvAccess, Base + pvCommon + pvData + pvAccess for pvIOC & the exampleCPP apps, Base + pvCommon + pvData + pvAccess +pvIOC for pvaSrv, The getting started guide explains this clearly for common, data and access. It doesn't explicitly state it for pvaSrv (and pvIOC) and exampleCPP. It perhaps obvious after building the first three modules, but the guide could be made a bit more idiot-proof in this respect. pvAccessCPP has a very terse but useful README in this respect. pvIOCCPP's README is not so useful and the modules don't have README's except for the two examples which have full descriptions in their READMES. Note also you should really build pvCommonCPP before pvDataCPP. In theory there's a dependency of pvDataCPP on pvCommonCPP, but in practice only if your compiler doesn't have library support for smart pointers. Dave -----Original Message----- From: White, Greg [mailto:gr...@sl...] Sent: 29 August 2013 03:29 To: Matej Sekoranja; Ralph Lange; Hickin, David (DLSLtd,RAL,DIA) Cc: epi...@li... Developers Subject: Support for building CPP 4.3 Hi, Hit an issue I think I saw last time I built pvAccessCPP - again with mb, fixed with a a very fragile fix, and then hit another issue with building pvaSrv. Would like this to prompt explicit instructions. What I did (after downloading EPICS-CPP-4.3.0-pre1.tar and untaring it into a directory named CPP-4-3-0/): --------- 1. Wrote a RELEASE.local file below: EPICS_BASE=${HOME}/Development/epicsV3/base-3.14.12.2 PVDATA=/Users/greg/Development/epicsV4/4-3test/CPP-4-3-0/pvDataCPP PVACCESS=/Users/greg/Development/epicsV4/4-3test/CPP-4-3-0/pvAccessCPP PVCOMMON=/Users/greg/Development/epicsV4/4-3test/CPP-4-3-0/pvCommonCPP 2. Copied that into the configure/ of all 3 of pvDataCPP, pvAccessCPP, and pvCommonCPP 3. wrote a Makefile in TOP % cat Makefile all %: +make -C pvDataCPP $@ && make -C pvCommonCPP $@ && make -C pvAccessCPP $@ && make -C pvaSrv $@ --------- % make Executing that make encountered this compile error: In file included from ../../pvAccessApp//remoteClient/clientContextImpl.cpp:34: ../../include/pv/pvAccessMB.h:4:10: fatal error: 'pv/mb.h' file not found Now, based on something in the old GettingStarted, I replaced the 3 identical RELEASE.locals, with 1 in TOP. The result bizarrely was to fix the 'pv/mb.h' file not found, but then to get this: make -C O.darwin-x86 -f ../Makefile TOP=../.. T_A=darwin-x86 install Installing dbd file ../../dbd/dbPv.dbd mkdir ../../dbd Installing generic include file ../../include/dbPv.h mkdir ../../include Installing generic include file ../../include/dbPvDebug.h Installing generic include file ../../include/caMonitor.h make[3]: *** No rule to make target `../../lib/darwin-x86/libpvIOC.a', needed by `libpvaSrv.a'. Stop. make[2]: *** [install.darwin-x86] Error 2 make[1]: *** [pvaSrvApp.install] Error 2 make: *** [all] Error 2 -- This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom |