areaDetector / ADAravis

areaDetector driver for GenICam cameras using the Aravis library on Linux.
https://areadetector.github.io/areaDetector/ADAravis/ADAravis.html
6 stars 8 forks source link

compile error with ADAravis #13

Closed LeeYangLBLBCS closed 3 years ago

LeeYangLBLBCS commented 3 years ago

Attached below.
I used epics base 7.0.4
ADAravis R2-2.
The error is pointing to missing decompressMono12p and decompressMono12Packed function call.
I suspect I missed certain library reference in configuration setup.
thanks for help.
==============================================================================
make -C ./configure install
make[1]: Entering directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/configure'
make -C O.linux-x86_64 -f ../Makefile TOP=../.. \
    T_A=linux-x86_64 install
make[2]: Entering directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/configure/O.linux-x86_64'
perl -CSD /opt/epics/base-7.0.4/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/configure/O.linux-x86_64'
make -C O.linux-x86_64-debug -f ../Makefile TOP=../.. \
    T_A=linux-x86_64-debug install
make[2]: Entering directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/configure/O.linux-x86_64-debug'
perl -CSD /opt/epics/base-7.0.4/bin/linux-x86_64/convertRelease.pl checkRelease
make[2]: Leaving directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/configure/O.linux-x86_64-debug'
make[1]: Leaving directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/configure'
make -C ./aravisApp install
make[1]: Entering directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/aravisApp'
make -C ./src install
make[2]: Entering directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/aravisApp/src'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
    T_A=linux-x86_64 install
make[3]: Entering directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/aravisApp/src/O.linux-x86_64'
/usr/bin/g++  -D_GNU_SOURCE -D_DEFAULT_SOURCE           -D_X86_64_  -DUNIX  -Dlinux      -O3   -Wall      -mtune=generic      -m64 -fPIC -I. -I../O.Common -I. -I. -I.. -I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include      -I/opt/epics/modules/synApps_6_1_epics7/support/asyn-R4-38/include     -I/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/include/os/Linux -I/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADSupport/include   -I/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADCore/include -I/opt/epics/base-7.0.4/include/compiler/gcc -I/opt/epics/base-7.0.4/include/os/Linux -I/opt/epics/base-7.0.4/include   -I/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADGenICam/include        -I/usr/include/glib-2.0/glib/ -I/usr/include/glib-2.0/ -I/usr/lib/x86_64-linux-gnu/glib-2.0/include/ -I/usr/local/include/aravis-0.8    -c ../ADAravis.cpp
../ADAravis.cpp: In member function ‘asynStatus ADAravis::processBuffer(ArvBuffer*)’:
../ADAravis.cpp:761:13: error: ‘decompressMono12p’ was not declared in this scope
             decompressMono12p(width*height, leftShift, (epicsUInt8 *)pIn->pData, (epicsUInt16 *)pRaw->pData);
             ^~~~~~~~~~~~~~~~~
../ADAravis.cpp:763:13: error: ‘decompressMono12Packed’ was not declared in this scope
             decompressMono12Packed(width*height, leftShift, (epicsUInt8 *)pIn->pData, (epicsUInt16 *)pRaw->pData);
             ^~~~~~~~~~~~~~~~~~~~~~
/opt/epics/base-7.0.4/configure/RULES_BUILD:248: recipe for target 'ADAravis.o' failed
make[3]: *** [ADAravis.o] Error 1
make[3]: Leaving directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/aravisApp/src/O.linux-x86_64'
/opt/epics/base-7.0.4/configure/RULES_ARCHS:58: recipe for target 'install.linux-x86_64' failed
make[2]: *** [install.linux-x86_64] Error 2
make[2]: Leaving directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/aravisApp/src'
/opt/epics/base-7.0.4/configure/RULES_DIRS:85: recipe for target 'src.install' failed
make[1]: *** [src.install] Error 2
make[1]: Leaving directory '/opt/epics/modules/synApps_6_1_epics7/support/areaDetector-R3-7/ADAravis/aravisApp'
/opt/epics/base-7.0.4/configure/RULES_DIRS:85: recipe for target 'aravisApp.install' failed
make: *** [aravisApp.install] Error 2
MarkRivers commented 3 years ago

You are running ADAravis R2-2. If you look at the release notes for ADAravis R2-1 they say this:

Added support for PixelFormat=Mono12Packed and Mono12p. This requires ADGenICam R1-6 or later because that contains the code to decompress these formats. These formats send 2 12-bit pixel values in 3 bytes, rather than 4 bytes required with Mono16. This reduces network bandwidth and allows many cameras to run faster.

You should get the latest release of ADGenICam.

LeeYangLBLBCS commented 3 years ago

I am using ADGenICam R1-7. I believe that's the latest.

LeeYangLBLBCS commented 3 years ago

Just realized I mixed up the ADGenICam versions. Sorry about that.

MarkRivers commented 3 years ago

I cannot reproduce that problem. I just checked out ADGenICam R1-7 and ADAravis R2-2 and rebuilt them both with no problems. This is on Centos 7.

corvette:~/devel/areaDetector/ADGenICam>git checkout R1-7
Note: checking out 'R1-7'.
...
HEAD is now at c94d29a... Added FLIR_BFLY_PGE_13H2M autoconverted OPI files
corvette:~/devel/areaDetector/ADGenICam>make -sj clean
corvette:~/devel/areaDetector/ADGenICam>make -sj
Installing shared library ../../../lib/linux-x86_64/libADGenICam.so
Installing library ../../../lib/linux-x86_64/libADGenICam.a
corvette:~/devel/areaDetector/ADGenICam>cd ../ADAravis/
/home/epics/devel/areaDetector/ADAravis
corvette:~/devel/areaDetector/ADAravis>git checkout R2-2
Note: checking out 'R2-2'.
...
HEAD is now at 1ae4751... Update for R2-2
corvette:~/devel/areaDetector/ADAravis>make -sj clean
corvette:~/devel/areaDetector/ADAravis>make -sj
Installing shared library ../../../lib/linux-x86_64/libADAravis.so
Installing library ../../../lib/linux-x86_64/libADAravis.a
Creating dbd file ADAravisApp.dbd
Installing created dbd file ../../../dbd/ADAravisApp.dbd
/home/epics/devel/areaDetector-3-10/ADSupport/lib/linux-x86_64/libjp2.a(jas_stream.o): In function `jas_stream_tmpfile':
/home/epics/devel/areaDetector-3-10/ADSupport/supportApp/GraphicsMagickSrc/jp2/src/libjasper/O.linux-x86_64/../../../../../../supportApp/GraphicsMagickSrc/jp2/src/libjasper/base/jas_stream.c:368: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
Installing created executable ../../../bin/linux-x86_64/ADAravisApp
corvette:~/devel/areaDetector/ADAravis>