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  2018  2019  2020  <20212022  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  2018  2019  2020  <20212022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: motor module make error
From: "Johnson, Andrew N. via Tech-talk" <tech-talk at aps.anl.gov>
To: 网易邮件中心 <l123173 at 163.com>, "Peterson, Kevin M." <kmpeters at anl.gov>
Cc: EPICS tech-talk <tech-talk at aps.anl.gov>
Date: Thu, 21 Oct 2021 16:48:16 +0000
Hi Liang,

On Oct 20, 2021, at 10:22 PM, 网易邮件中心 via Tech-talk <tech-talk at aps.anl.gov> wrote:

     I use centos8, base 7.0.6.1, motor ( https://github.com/epics-modules/motor ), seq-2.2.6, and some other module from https://github.com/epics-modules/.

I suspect this build error may be due to the updated version of g++ that comes with CentOS-8/RHEL-8 which has stricter language rules than the Motor support was written for (Kevin — have you tried building Motor using RHEL-8 yet? I’d expect you to see exactly the same errors there). The code will need to be fixed, but you may be able to get around the problem for now by adding this line somewhere in the middle of the file motor-master/modules/motorOms/omsApp/src/Makefile:

USR_CXXFLAGS = -std=gnu++98

However GCC doesn’t guarantee that you can successfully link together object files that were compiled using two different C++ standards. The version of g++ that comes with CentOS-8/RHEL-8 defaults to using gnu++14, but problems might only arise with the implementations of some of the C++ standard library, which I doubt if the OMS driver is using so I think this is worth trying.

- Andrew


    I got the error message.
--------------------Error----------------------------------------

../drvOmsPC68.cc:148:1: error: invalid conversion from ‘RTN_STATUS (*)(int, const char*, char*)’ {aka ‘RTN_VALUES (*)(int, const char*, char*)’} to ‘RTN_STATUS (*)(int, const char*, const char*)’ {aka ‘RTN_VALUES (*)(int, const char*, const char*)’} [-fpermissive]
 };
 ^
../drvOmsPC68.cc:148:1: error: invalid conversion from ‘char**’ to ‘const char**’ [-fpermissive]
../drvOmsPC68.cc: In function ‘void asynCallback(void*, asynUser*, char*, size_t, int)’:

-- 
Complexity comes for free, simplicity you have to work for.


Replies:
Re: motor module make error Kevin Peterson via Tech-talk
References:
motor module make error 网易邮件中心 via Tech-talk

Navigate by Date:
Prev: RE: QuadEM operation with parameters "Queued" Mark Rivers via Tech-talk
Next: RE: QuadEM operation with parameters "Queued" Iain Marcuson via Tech-talk
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  <20212022  2023  2024 
Navigate by Thread:
Prev: motor module make error 网易邮件中心 via Tech-talk
Next: Re: motor module make error Kevin Peterson via Tech-talk
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  <20212022  2023  2024 
ANJ, 21 Oct 2021 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·