Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build error: ‘class epics::pvAccess::ChannelProvider’ has no member named ‘flush’ #24

Open
djvine opened this issue May 10, 2019 · 2 comments

Comments

@djvine
Copy link

djvine commented May 10, 2019

EPICS7 noob trying to build masar. I have base 7.0.2 installed ok, synapps (latest tagged version of each) build ok against epics7.

When I try to compile masar i get the error below. I have the following in my release file:
EV4_BASE=/opt/epics7/base
PVACLIENT=$(EV4_BASE)/pvaClient
PVDATABASE=$(EV4_BASE)/pvDatabase
PVASRV=$(EV4_BASE)/pva2pva
PVACCESS=$(EV4_BASE)/pvAccess
NORMATIVETYPES=$(EV4_BASE)/normativeTypes
PVDATA=$(EV4_BASE)/pvData
PVCOMMON=$(EV4_BASE)/libcom

EPICS_BASE=/opt/epics7/base

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

[david@dusk masarService]$ make
make -C ./cpp install
make[1]: Entering directory '/opt/epics7/masarService/cpp'
make -C ./configure install
make[2]: Entering directory '/opt/epics7/masarService/cpp/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../..
T_A=linux-x86_64 install
make[3]: Entering directory '/opt/epics7/masarService/cpp/configure/O.linux-x86_64'
/opt/epics7/base/configure/RULES_BUILD:550: RULES_BUILD included more than once. Use 'make show-makefiles' to work out why.
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/opt/epics7/masarService/cpp/configure/O.linux-x86_64'
make[2]: Leaving directory '/opt/epics7/masarService/cpp/configure'
make -C ./src install
make[2]: Entering directory '/opt/epics7/masarService/cpp/src'
make -C ./util install
make[3]: Entering directory '/opt/epics7/masarService/cpp/src/util'
make -C O.linux-x86_64 -f ../Makefile TOP=../../..
T_A=linux-x86_64 install
make[4]: Entering directory '/opt/epics7/masarService/cpp/src/util/O.linux-x86_64'
/opt/epics7/base/configure/RULES_BUILD:550: RULES_BUILD included more than once. Use 'make show-makefiles' to work out why.
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/opt/epics7/masarService/cpp/src/util/O.linux-x86_64'
make[3]: Leaving directory '/opt/epics7/masarService/cpp/src/util'
make -C ./client install
make[3]: Entering directory '/opt/epics7/masarService/cpp/src/client'
make -C O.linux-x86_64 -f ../Makefile TOP=../../..
T_A=linux-x86_64 install
make[4]: Entering directory '/opt/epics7/masarService/cpp/src/client/O.linux-x86_64'
/opt/epics7/base/configure/RULES_BUILD:550: RULES_BUILD included more than once. Use 'make show-makefiles' to work out why.
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../src/client//gatherV3Data -I../../../include/pv/compiler/gcc -I../../../include/pv/os/Linux -I../../../include/pv -I/opt/epics7/base/include/compiler/gcc -I/opt/epics7/base/include/os/Linux -I/opt/epics7/base/include -I/opt/epics7/base/include/compiler/gcc -I/opt/epics7/base/include/os/Linux -I/opt/epics7/base/include -I ../../../include -I/include/ -c ../../../src/client//gatherV3Data/gatherV3Data.cpp
../../../src/client//gatherV3Data/gatherV3Data.cpp: In member function ‘bool epics::masar::GatherV3Data::createGet()’:
../../../src/client//gatherV3Data/gatherV3Data.cpp:509:22: error: ‘class epics::pvAccess::ChannelProvider’ has no member named ‘flush’
channelProvider->flush();
^~~~~
../../../src/client//gatherV3Data/gatherV3Data.cpp: In member function ‘bool epics::masar::GatherV3Data::get()’:
../../../src/client//gatherV3Data/gatherV3Data.cpp:532:22: error: ‘class epics::pvAccess::ChannelProvider’ has no member named ‘flush’
channelProvider->flush();
^~~~~
../../../src/client//gatherV3Data/gatherV3Data.cpp: In member function ‘bool epics::masar::GatherV3Data::createPut()’:
../../../src/client//gatherV3Data/gatherV3Data.cpp:624:22: error: ‘class epics::pvAccess::ChannelProvider’ has no member named ‘flush’
channelProvider->flush();
^~~~~
../../../src/client//gatherV3Data/gatherV3Data.cpp: In member function ‘bool epics::masar::GatherV3Data::put()’:
../../../src/client//gatherV3Data/gatherV3Data.cpp:647:22: error: ‘class epics::pvAccess::ChannelProvider’ has no member named ‘flush’
channelProvider->flush();
^~~~~
/opt/epics7/base/configure/RULES_BUILD:242: recipe for target 'gatherV3Data.o' failed
make[4]: *** [gatherV3Data.o] Error 1
make[4]: Leaving directory '/opt/epics7/masarService/cpp/src/client/O.linux-x86_64'
/opt/epics7/base/configure/RULES_ARCHS:58: recipe for target 'install.linux-x86_64' failed
make[3]: *** [install.linux-x86_64] Error 2
make[3]: Leaving directory '/opt/epics7/masarService/cpp/src/client'
/opt/epics7/base/configure/RULES_DIRS:84: recipe for target 'client.install' failed
make[2]: *** [client.install] Error 2
make[2]: Leaving directory '/opt/epics7/masarService/cpp/src'
/opt/epics7/base/configure/RULES_DIRS:84: recipe for target 'src.install' failed
make[1]: *** [src.install] Error 2
make[1]: Leaving directory '/opt/epics7/masarService/cpp'
/opt/epics7/base/configure/RULES_DIRS:84: recipe for target 'cpp.install' failed
make: *** [cpp.install] Error 2

@ralphlange
Copy link
Contributor

Your RELEASE settings look like they are made for compiling against EPICS 3 + EPICS 4 (i.e. the PVA modules separately).

For use with EPICS 7 (that has the PVA modules merged) the settings have to be different. I would say (never having compiled MASAR) that all these variables should point to the same location, your installed EPICS 7.

@mdavidsaver
Copy link
Member

mdavidsaver commented May 13, 2019

This reminds me of #21 which hasn't been merged. It will certainly avoid this error as it removes all of the compiled code.

I can't remember atm. if there was a reason why #21 isn't merged. Might just be laziness on my part. As it appears that the current code doesn't build, and the CI tests for #21 pass, I'm going to go ahead and merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants