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  2021  2022  <20232024  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  <20232024 
<== Date ==> <== Thread ==>

Subject: Re: Using opencv with areaDetector
From: William Smith via Tech-talk <tech-talk at aps.anl.gov>
To: "Mark Rivers" <rivers at cars.uchicago.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Thu, 10 Aug 2023 19:12:05 +0200

I found that I could get it to build only when I used CONFIG_SITE.local with the following:

# OPENCV is required for the ADPluginEdge plugin
WITH_OPENCV = YES
OPENCV_EXTERNAL = YES
OPENCV_INCLUDE = /usr/include/opencv4
#OPENCV_LIB =

If I used the following then ADPluginBar will build, but any IOC that uses it will fail to build with the error messages already described.

# OPENCV is required for the ADPluginEdge plugin
WITH_OPENCV = YES
OPENCV_EXTERNAL = YES
OPENCV_INCLUDE = /usr/include/opencv4
OPENCV_LIB = /usr/lib

Hopefully this will help someone else in the future. It's a bit confusing because the include files have to be specified because of a change in the location that they are saved for opencv4. Specifying the OPENCV_LIB parameter breaks the build of the IOCs.

Thanks,

Will


--------------------Original message--------------------
From: William Smith <william.smith at helmholtz-berlin.de>
Sent: Tuesday, August 8, 2023 15:16
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: tech-talk at aps.anl.gov
Subject: Re: Using opencv with areaDetector

Here is the output after running make clean uninstall; make in ADSimDetector.

make[5]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorIOC/simDetectorApp/Db/O.linux-x86_64'
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorIOC/simDetectorApp/Db'
make[5]: *** No rule to make target '../../../lib/linux-x86_64/libopencv_core.a', needed by 'simDetectorNoIOCApp'. Stop.
make[5]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/O.linux-x86_64'
make[4]: *** [/opt/epics/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src'
make[3]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: src.install] Error 2
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp'
make[2]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: simDetectorNoIOCApp.install] Error 2
make[2]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC'
make[1]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: simDetectorNoIOC.install] Error 2
make[1]: *** Waiting for unfinished jobs....
make[5]: *** No rule to make target '../../../lib/linux-x86_64/libopencv_core.a', needed by 'simDetectorApp'. Stop.
make[5]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorIOC/simDetectorApp/src/O.linux-x86_64'
make[4]: *** [/opt/epics/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorIOC/simDetectorApp/src'
make[3]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: src.install] Error 2
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorIOC/simDetectorApp'
make[2]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: simDetectorApp.install] Error 2
make[2]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorIOC'
make[1]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: simDetectorIOC.install] Error 2
make[1]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs'
make: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: iocs.install] Error 2


--------------------Original message--------------------
From: William Smith <william.smith at helmholtz-berlin.de>
Sent: Tuesday, August 8, 2023 15:11
To: Mark Rivers <rivers at cars.uchicago.edu>
Cc: tech-talk at aps.anl.gov
Subject: Re: Using opencv with areaDetector

make -C /opt/epics/areaDetector/ADSimDetector install
make[1]: Entering directory '/opt/epics/areaDetector/ADSimDetector'
make -C ./configure install
make[2]: Entering directory '/opt/epics/areaDetector/ADSimDetector/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[3]: Entering directory '/opt/epics/areaDetector/ADSimDetector/configure/O.linux-x86_64'
perl -CSD /opt/epics/epics-base/bin/linux-x86_64/convertRelease.pl checkRelease
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/configure/O.linux-x86_64'
make[2]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/configure'
make -C ./simDetectorApp install
make[2]: Entering directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp'
make -C ./src install
make[3]: Entering directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/src'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[4]: Entering directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/src/O.linux-x86_64'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/src/O.linux-x86_64'
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/src'
make -C ./Db install
make[3]: Entering directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/Db'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[4]: Entering directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/Db/O.linux-x86_64'
make[4]: Nothing to be done for 'install'.
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/Db/O.linux-x86_64'
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/Db'
make -C ./op install
make[3]: Entering directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/op'
make[3]: Nothing to be done for 'install'.
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp/op'
make[2]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/simDetectorApp'
make -C ./iocs install
make[2]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs'
make -C ./simDetectorNoIOC install
make[3]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC'
make -C ./configure install
make[4]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
T_A=linux-x86_64 install
make[5]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/configure/O.linux-x86_64'
perl -CSD /opt/epics/epics-base/bin/linux-x86_64/convertRelease.pl checkRelease
make[5]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/configure/O.linux-x86_64'
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/configure'
make -C ./simDetectorNoIOCApp install
make[4]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp'
make -C ./src install
make[5]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[6]: Entering directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/O.linux-x86_64'
make[6]: *** No rule to make target '../../../lib/linux-x86_64/libopencv_core.a', needed by 'simDetectorNoIOCApp'. Stop.
make[6]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src/O.linux-x86_64'
make[5]: *** [/opt/epics/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2
make[5]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp/src'
make[4]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: src.install] Error 2
make[4]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC/simDetectorNoIOCApp'
make[3]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: simDetectorNoIOCApp.install] Error 2
make[3]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs/simDetectorNoIOC'
make[2]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: simDetectorNoIOC.install] Error 2
make[2]: Leaving directory '/opt/epics/areaDetector/ADSimDetector/iocs'
make[1]: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: iocs.install] Error 2
make[1]: Leaving directory '/opt/epics/areaDetector/ADSimDetector'
make: *** [/opt/epics/epics-base/configure/RULES_DIRS:85: /opt/epics/areaDetector/ADSimDetector.install] Error 2


--------------------Original message--------------------
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Tuesday, August 8, 2023 13:31
To: William Smith <william.smith at helmholtz-berlin.de>
Cc: tech-talk at aps.anl.gov
Subject: Re: Using opencv with areaDetector

Send the complete link line that fails.

Mark


Sent from my iPhone

On Aug 8, 2023, at 5:17 AM, William Smith via Tech-talk <tech-talk at aps.anl.gov> wrote:

Dear Tech-Talk, 

I am trying to use opencv with areaDetector. To start, I have been trying to build with the ADPluginEdge plugin

I am using ubuntu 20.04
I have pulled AD 3-12-1
I have installed opencv using the package manager. sudo apt install libopencv-dev
I have checked that the commonDriverMakefile in ADCore contains ifdef ADPLUGINBAR....
I have checked that in CONFIG_SITE.local.linux-x86_64 the following is set

WITH_OPENCV = YES

OPENCV_EXTERNAL = YES


I had to add the include directory because opencv 4.2.0 includes are under /usr/includes/opencv4

OPENCV = /usr

OPENCV_LIB = $(OPENCV)/lib

OPENCV_INCLUDE = -I$(OPENCV)/include/opencv4



ADSupport, ADCore and ADPluginEdge build without errors. Then when I try to build an example IOC using ADSimDetector I get the following error:


No rule to make target '../../../lib/linux-x86_64/libopencv_core.a', needed by 'simDetectorApp'


It feels like it isn't looking in the EXTERNAL location like I tell it to. Have I missed something? Does anyone have a suggestion?

Thanks, 

Will


Navigate by Date:
Prev: Re: netDev "channels" record type problem Shuei YAMADA via Tech-talk
Next: RE: MRF EvtClk object not found Daykin, Evan 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  2021  2022  <20232024 
Navigate by Thread:
Prev: Re: Using opencv with areaDetector William Smith via Tech-talk
Next: MRF EvtClk object not found Daykin, Evan 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  2021  2022  <20232024 
ANJ, 10 Aug 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·