Experimental Physics and Industrial Control System
|
I have seq-2-2-1 build for the CLAS12 tree. We can get you setup to test with it if that’s useful. Then you could decide if you wanted to move Hall D to the new sequencer version.
Wesley
On Monday 24 August 2015 14:26:12 Hovanes Egiyan wrote:Hi,
I was trying to call SNLs C-functions equivalents for pvPut, pvGet, pvAssign etc (seq_pvPut ...) from a C++ code using seq-2.1.12, and run into a compile-time problem. I was getting error messages from g++:
/gluex/controls/epics/R3-14-12-3-RHEL5/support/seq-2.1.12/include/seqC om.h:102: error: conflicting declaration ‘typedef const struct seqChan seqChan’ /gluex/controls/epics/R3-14-12-3-RHEL5/support/seq-2.1.12/include/seq Com.h:102: error: ‘struct seqChan’ has a previous declaration as ‘struct seqChan’ /gluex/controls/epics/R3-14-12-3-RHEL5/support/seq-2.1.12/include/seq Com.h:103: error: conflicting declaration ‘typedef const struct seqState seqState’ /gluex/controls/epics/R3-14-12-3-RHEL5/support/seq-2.1.12/include/seq Com.h:103: error: ‘struct seqState’ has a previous declaration as ‘struct seqState’ /gluex/controls/epics/R3-14-12-3-RHEL5/support/seq-2.1.12/include/seq Com.h:104: error: conflicting declaration ‘typedef const struct seqSS seqSS’ /gluex/controls/epics/R3-14-12-3-RHEL5/support/seq-2.1.12/include/seq Com.h:104: error: ‘struct seqSS’ has a previous declaration as ‘struct seqSS’
The problem seems to be coming from seq-2.1.12/src/seq/seqCom.h header file where there are typedef statements for struct structure before actual definition of the structures. C++ does not seem to like it, and I was able to move forward using one "#ifndef __cplusplus" instruction :
#ifndef __cplusplus typedef const struct seqChan seqChan; typedef const struct seqState seqState; typedef const struct seqSS seqSS; typedef struct seqProgram seqProgram; #endif
/* Static information about a channel */ struct seqChan { ...
That way these typedefs are not be present for a C++ compiler. I do not know if it breaks anything in the bigger picture,
Well, the typedefs in question have a 'const' in them, so there is asemantic difference. The better solution would be to rename either thetypedefs or the struct names.but if it does not, may be it could be included in the "src/seq/seqCom.h" for the seq module.
I am reluctant to make this change on the 2.1 branch because there is nolonger any development happening there except critical bug fixes. Theproblem should not appear with version 2.2, where I have separated thedefinitions that are (meant to be) used only by the generated C code(including the 'typedef const struct xxx' definitions that are causingyour problem) into a separate header file.So, unless there is strong demand for it, I'd rather point you toversion 2.2 if you need to call pv functions from C++.CheersBen________________________________Helmholtz-Zentrum Berlin für Materialien und Energie GmbHMitglied der Hermann von Helmholtz-Gemeinschaft Deutscher Forschungszentren e.V.Aufsichtsrat: Vorsitzender Prof. Dr. Dr. h.c. mult. Joachim Treusch, stv. Vorsitzende Dr. Beatrix Vierkorn-RudolphGeschäftsführung: Prof. Dr. Anke Rita Kaysser-Pyzalla, Thomas FrederkingSitz Berlin, AG Charlottenburg, 89 HRB 5583Postadresse:Hahn-Meitner-Platz 1D-14109 Berlinhttp://www.helmholtz-berlin.de
|
- References:
- seq-2.1.12 and C++ Hovanes Egiyan
- Re: seq-2.1.12 and C++ Benjamin Franksen
- Navigate by Date:
- Prev:
RE: where to download CCS Boy? Petro Kazmirchuk
- Next:
Re: Virtual Circuit Disconnect Warning Andrew Johnson
- 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
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: seq-2.1.12 and C++ Benjamin Franksen
- Next:
Re: seq-2.1.12 and C++ Hovanes Egiyan
- 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
2018
2019
2020
2021
2022
2023
2024
|
ANJ, 16 Dec 2015 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|