Searching for answers i found this answer: (
https://epics.anl.gov/tech-talk/2017/msg00990.php) but i dont think its the same as my problem since EPICS_BASE is correctly defined
in my configure/RELEASE_LIBS.local, configure/RELEASE_BASE.local and configure/RELEASE_PRODS.local. My version of areaDetector also didnt come with the files EXAMPLE_RELEASE_PATHS.local and EXAMPLE_CONFIG_SITE.local.
Does anyone have any hints on how to proceed? Thanks in advance.
Compilation message when done inside areaDetector-R3-7/ADCore/ADApp/pluginSrc:
areaDetector-R3-7/ADCore/ADApp/pluginSrc$ make
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. \
T_A=linux-x86_64 install
make[1]: Entering directory '/home/marco/EPICS/synApps_6_1/support/areaDetector-R3-7/ADCore/ADApp/pluginSrc/O.linux-x86_64'
/usr/bin/g++ -D_GNU_SOURCE -D_DEFAULT_SOURCE -D_X86_64_ -DUNIX -Dlinux -O3 -g -Wall -DHAVE_JPEG -DHAVE_BLOSC -DHAVE_BITSHUFFLE -DH5_NO_DEPRECATED_SYMBOLS -DH5Gopen_vers=2 -mtune=generic -m64 -fPIC -I. -I../O.Common -I. -I. -I..
-I../../../include/compiler/gcc -I../../../include/os/Linux -I../../../include -I/home/marco/EPICS/synApps_6_1/support/asyn-R4-36/include -I/home/marco/EPICS/synApps_6_1/support/areaDetector-R3-7/ADSupport/include/os/Linux -I/home/marco/EPICS/synApps_6_1/support/areaDetector-R3-7/ADSupport/include
-I/home/marco/EPICS/synApps_6_1/support/areaDetector-R3-7/ADCore/include -I/home/marco/EPICS/epics-base/include/compiler/gcc -I/home/marco/EPICS/epics-base/include/os/Linux -I/home/marco/EPICS/epics-base/include -c ../NDArrayRing.cpp
In file included from ../../../include/NDArray.h:20,
from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDAttribute.h:87:23: error: variable ‘epicsShareClass NDAttribute’ has initializer but incomplete type
87 | class epicsShareClass NDAttribute {
| ^~~~~~~~~~~
../../../include/NDAttribute.h:88:1: error: expected primary-_expression_ before ‘public’
88 | public:
| ^~~~~~
../../../include/NDAttribute.h:88:1: error: expected ‘}’ before ‘public’
../../../include/NDAttribute.h:87:35: note: to match this ‘{’
87 | class epicsShareClass NDAttribute {
| ^
../../../include/NDAttribute.h:88:1: error: expected ‘,’ or ‘;’ before ‘public’
88 | public:
| ^~~~~~
../../../include/NDAttribute.h:92:16: error: expected constructor, destructor, or type conversion before ‘(’ token
92 | NDAttribute(NDAttribute& attribute);
| ^
../../../include/NDAttribute.h:94:13: error: declaration of ‘~ NDAttribute’ as non-member
94 | virtual ~NDAttribute();
| ^~~~~~~~~~~~
../../../include/NDAttribute.h:95:13: error: ‘NDAttribute’ does not name a type
95 | virtual NDAttribute* copy(NDAttribute *pAttribute);
| ^~~~~~~~~~~
../../../include/NDAttribute.h:96:5: error: ‘virtual’ outside class declaration
96 | virtual const char *getName();
| ^~~~~~~
../../../include/NDAttribute.h:97:5: error: ‘virtual’ outside class declaration
97 | virtual const char *getDescription();
| ^~~~~~~
../../../include/NDAttribute.h:98:5: error: ‘virtual’ outside class declaration
98 | virtual const char *getSource();
| ^~~~~~~
../../../include/NDAttribute.h:99:5: error: ‘virtual’ outside class declaration
99 | virtual const char *getSourceInfo(NDAttrSource_t *pSourceType);
| ^~~~~~~
../../../include/NDAttribute.h:100:5: error: ‘virtual’ outside class declaration
100 | virtual NDAttrDataType_t getDataType();
| ^~~~~~~
../../../include/NDAttribute.h:101:5: error: ‘virtual’ outside class declaration
101 | virtual int getValueInfo(NDAttrDataType_t *pDataType, size_t *pDataSize);
| ^~~~~~~
../../../include/NDAttribute.h:102:5: error: ‘virtual’ outside class declaration
102 | virtual int getValue(NDAttrDataType_t dataType, void *pValue, size_t dataSize=0);
| ^~~~~~~
../../../include/NDAttribute.h:103:5: error: ‘virtual’ outside class declaration
103 | virtual int getValue(std::string& value);
| ^~~~~~~
../../../include/NDAttribute.h:104:5: error: ‘virtual’ outside class declaration
104 | virtual int setDataType(NDAttrDataType_t dataType);
| ^~~~~~~
../../../include/NDAttribute.h:105:5: error: ‘virtual’ outside class declaration
105 | virtual int setValue(const void *pValue);
| ^~~~~~~
../../../include/NDAttribute.h:106:5: error: ‘virtual’ outside class declaration
106 | virtual int setValue(const std::string&);
| ^~~~~~~
../../../include/NDAttribute.h:107:5: error: ‘virtual’ outside class declaration
107 | virtual int updateValue();
| ^~~~~~~
../../../include/NDAttribute.h:108:5: error: ‘virtual’ outside class declaration
108 | virtual int report(FILE *fp, int details);
| ^~~~~~~
../../../include/NDAttribute.h:109:5: error: ‘friend’ used outside of class
109 | friend class NDArray;
| ^~~~~~
| ------
../../../include/NDAttribute.h:110:5: error: ‘friend’ used outside of class
110 | friend class NDAttributeList;
| ^~~~~~
| ------
../../../include/NDAttribute.h:113:1: error: expected unqualified-id before ‘private’
113 | private:
| ^~~~~~~
../../../include/NDAttribute.h:124:1: error: expected declaration before ‘}’ token
124 | };
| ^
In file included from ../../../include/NDArray.h:21,
from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDAttributeList.h:21:23: error: variable ‘epicsShareClass NDAttributeList’ has initializer but incomplete type
21 | class epicsShareClass NDAttributeList {
| ^~~~~~~~~~~~~~~
../../../include/NDAttributeList.h:22:1: error: expected primary-_expression_ before ‘public’
22 | public:
| ^~~~~~
../../../include/NDAttributeList.h:22:1: error: expected ‘}’ before ‘public’
../../../include/NDAttributeList.h:21:39: note: to match this ‘{’
21 | class epicsShareClass NDAttributeList {
| ^
../../../include/NDAttributeList.h:22:1: error: expected ‘,’ or ‘;’ before ‘public’
22 | public:
| ^~~~~~
../../../include/NDAttributeList.h:24:23: error: expected constructor, destructor, or type conversion before ‘;’ token
24 | ~NDAttributeList();
| ^
../../../include/NDAttributeList.h:25:35: error: ‘pAttribute’ was not declared in this scope; did you mean ‘NDAttribute’?
25 | int add(NDAttribute *pAttribute);
| ^~~~~~~~~~
| NDAttribute
../../../include/NDAttributeList.h:26:5: error: ‘NDAttribute’ does not name a type
26 | NDAttribute* add(const char *pName, const char *pDescription="",
| ^~~~~~~~~~~
../../../include/NDAttributeList.h:28:5: error: ‘NDAttribute’ does not name a type
28 | NDAttribute* find(const char *pName);
| ^~~~~~~~~~~
../../../include/NDAttributeList.h:29:5: error: ‘NDAttribute’ does not name a type
29 | NDAttribute* next(NDAttribute *pAttribute);
| ^~~~~~~~~~~
../../../include/NDAttributeList.h:33:40: error: ‘pOut’ was not declared in this scope
33 | int copy(NDAttributeList *pOut);
| ^~~~
../../../include/NDAttributeList.h:37:1: error: expected unqualified-id before ‘private’
37 | private:
| ^~~~~~~
../../../include/NDAttributeList.h:40:1: error: expected declaration before ‘}’ token
40 | };
| ^
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:92:23: error: variable ‘epicsShareClass NDArray’ has initializer but incomplete type
92 | class epicsShareClass NDArray {
| ^~~~~~~
../../../include/NDArray.h:93:1: error: expected primary-_expression_ before ‘public’
93 | public:
| ^~~~~~
../../../include/NDArray.h:93:1: error: expected ‘}’ before ‘public’
../../../include/NDArray.h:92:31: note: to match this ‘{’
92 | class epicsShareClass NDArray {
| ^
../../../include/NDArray.h:93:1: error: expected ‘,’ or ‘;’ before ‘public’
93 | public:
| ^~~~~~
../../../include/NDArray.h:96:90: error: expected constructor, destructor, or type conversion before ‘;’ token
96 | NDArray(int ndims, size_t *dims, NDDataType_t dataType, size_t dataSize, void *pData);
| ^
../../../include/NDArray.h:97:13: error: declaration of ‘~ NDArray’ as non-member
97 | virtual ~NDArray();
| ^~~~~~~~
../../../include/NDArray.h:103:38: error: non-member function ‘int getReferenceCount()’ cannot have cv-qualifier
103 | int getReferenceCount() const {return referenceCount;}
| ^~~~~
../../../include/NDArray.h: In function ‘int getReferenceCount()’:
../../../include/NDArray.h:103:52: error: ‘referenceCount’ was not declared in this scope; did you mean ‘getReferenceCount’?
103 | int getReferenceCount() const {return referenceCount;}
| ^~~~~~~~~~~~~~
| getReferenceCount
../../../include/NDArray.h: At global scope:
../../../include/NDArray.h:105:5: error: ‘friend’ used outside of class
105 | friend class NDArrayPool;
| ^~~~~~
| ------
../../../include/NDArray.h:107:1: error: expected unqualified-id before ‘private’
107 | private:
| ^~~~~~~
../../../include/NDArray.h:111:1: error: expected unqualified-id before ‘public’
111 | public:
| ^~~~~~
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:127:5: error: ‘NDAttributeList’ does not name a type
127 | NDAttributeList *pAttributeList; /**< Linked list of attributes */
| ^~~~~~~~~~~~~~~
../../../include/NDArray.h:130:1: error: expected declaration before ‘}’ token
130 | };
| ^
../../../include/NDArray.h:142:32: error: expected ‘)’ before ‘*’ token
142 | freeListElement(NDArray *pArray, size_t dataSize) {
| ~ ^~
| )
../../../include/NDArray.h:148:9: error: ‘NDArray’ does not name a type
148 | NDArray *pArray_;
| ^~~~~~~
../../../include/NDArray.h:161:23: error: variable ‘epicsShareClass NDArrayPool’ has initializer but incomplete type
161 | class epicsShareClass NDArrayPool {
| ^~~~~~~~~~~
../../../include/NDArray.h:162:1: error: expected primary-_expression_ before ‘public’
162 | public:
| ^~~~~~
../../../include/NDArray.h:162:1: error: expected ‘}’ before ‘public’
../../../include/NDArray.h:161:35: note: to match this ‘{’
161 | class epicsShareClass NDArrayPool {
| ^
../../../include/NDArray.h:162:1: error: expected ‘,’ or ‘;’ before ‘public’
162 | public:
| ^~~~~~
../../../include/NDArray.h:164:13: error: declaration of ‘~ NDArrayPool’ as non-member
164 | virtual ~NDArrayPool() {}
| ^~~~~~~~~~~~
../../../include/NDArray.h:165:5: error: ‘NDArray’ does not name a type
165 | NDArray* alloc(int ndims, size_t *dims, NDDataType_t dataType, size_t dataSize, void *pData);
| ^~~~~~~
../../../include/NDArray.h:166:5: error: ‘NDArray’ does not name a type
166 | NDArray* copy(NDArray *pIn, NDArray *pOut, bool copyData, bool copyDimensions=true, bool copyDataType=true);
| ^~~~~~~
../../../include/NDArray.h:168:26: error: ‘int reserve’ redeclared as different kind of entity
168 | int reserve(NDArray *pArray);
| ^~~~~~~
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:101:18: note: previous declaration ‘int reserve()’
101 | int reserve();
| ^~~~~~~
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:168:35: error: ‘pArray’ was not declared in this scope; did you mean ‘NDArray’?
168 | int reserve(NDArray *pArray);
| ^~~~~~
| NDArray
../../../include/NDArray.h:169:26: error: ‘int release’ redeclared as different kind of entity
169 | int release(NDArray *pArray);
| ^~~~~~~
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:102:18: note: previous declaration ‘int release()’
102 | int release();
| ^~~~~~~
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:169:35: error: ‘pArray’ was not declared in this scope; did you mean ‘NDArray’?
169 | int release(NDArray *pArray);
| ^~~~~~
| NDArray
../../../include/NDArray.h:170:35: error: ‘pIn’ was not declared in this scope
170 | int convert(NDArray *pIn,
| ^~~
../../../include/NDArray.h:171:36: error: ‘ppOut’ was not declared in this scope
171 | NDArray **ppOut,
| ^~~~~
../../../include/NDArray.h:172:39: error: expected primary-_expression_ before ‘dataTypeOut’
172 | NDDataType_t dataTypeOut,
| ^~~~~~~~~~~
../../../include/NDArray.h:173:40: error: expected primary-_expression_ before ‘*’ token
173 | NDDimension_t *outDims);
| ^
../../../include/NDArray.h:173:41: error: ‘outDims’ was not declared in this scope
173 | NDDimension_t *outDims);
| ^~~~~~~
../../../include/NDArray.h:173:48: error: _expression_ list treated as compound _expression_ in initializer [-fpermissive]
173 | NDDimension_t *outDims);
| ^
../../../include/NDArray.h:174:18: error: redefinition of ‘int convert’
174 | int convert(NDArray *pIn,
| ^~~~~~~
../../../include/NDArray.h:170:18: note: ‘int convert’ previously defined here
170 | int convert(NDArray *pIn,
| ^~~~~~~
../../../include/NDArray.h:174:35: error: ‘pIn’ was not declared in this scope
174 | int convert(NDArray *pIn,
| ^~~
../../../include/NDArray.h:175:36: error: ‘ppOut’ was not declared in this scope
175 | NDArray **ppOut,
| ^~~~~
../../../include/NDArray.h:176:39: error: expected primary-_expression_ before ‘dataTypeOut’
176 | NDDataType_t dataTypeOut);
| ^~~~~~~~~~~
../../../include/NDArray.h:184:1: error: expected unqualified-id before ‘protected’
184 | protected:
| ^~~~~~~~~
../../../include/NDArray.h:189:5: error: ‘virtual’ outside class declaration
189 | virtual void onAllocateArray(NDArray *pArray);
| ^~~~~~~
../../../include/NDArray.h:189:18: error: variable or field ‘onAllocateArray’ declared void
189 | virtual void onAllocateArray(NDArray *pArray);
| ^~~~~~~~~~~~~~~
../../../include/NDArray.h:189:43: error: ‘pArray’ was not declared in this scope; did you mean ‘NDArray’?
189 | virtual void onAllocateArray(NDArray *pArray);
| ^~~~~~
| NDArray
../../../include/NDArray.h:190:5: error: ‘virtual’ outside class declaration
190 | virtual void onReserveArray(NDArray *pArray);
| ^~~~~~~
../../../include/NDArray.h:190:18: error: variable or field ‘onReserveArray’ declared void
190 | virtual void onReserveArray(NDArray *pArray);
| ^~~~~~~~~~~~~~
../../../include/NDArray.h:190:42: error: ‘pArray’ was not declared in this scope; did you mean ‘NDArray’?
190 | virtual void onReserveArray(NDArray *pArray);
| ^~~~~~
| NDArray
../../../include/NDArray.h:191:5: error: ‘virtual’ outside class declaration
191 | virtual void onReleaseArray(NDArray *pArray);
| ^~~~~~~
../../../include/NDArray.h:191:18: error: variable or field ‘onReleaseArray’ declared void
191 | virtual void onReleaseArray(NDArray *pArray);
| ^~~~~~~~~~~~~~
../../../include/NDArray.h:191:42: error: ‘pArray’ was not declared in this scope; did you mean ‘NDArray’?
191 | virtual void onReleaseArray(NDArray *pArray);
| ^~~~~~
| NDArray
../../../include/NDArray.h:193:1: error: expected unqualified-id before ‘private’
193 | private:
| ^~~~~~~
../../../include/NDArray.h:200:1: error: expected declaration before ‘}’ token
200 | };
| ^
In file included from ../NDArrayRing.cpp:19:
../NDArrayRing.h:20:5: error: ‘NDArray’ does not name a type
20 | NDArray *addToEnd(NDArray *pArray);
| ^~~~~~~
../NDArrayRing.h:23:5: error: ‘NDArray’ does not name a type
23 | NDArray *readFromStart();
| ^~~~~~~
../NDArrayRing.h:26:5: error: ‘NDArray’ does not name a type
26 | NDArray *readNext();
| ^~~~~~~
../NDArrayRing.h:36:5: error: ‘NDArray’ does not name a type
36 | NDArray** buffers_;
| ^~~~~~~
../NDArrayRing.cpp: In constructor ‘NDArrayRing::NDArrayRing(int)’:
../NDArrayRing.cpp:24:3: error: ‘buffers_’ was not declared in this scope; did you mean ‘numBuffers_’?
24 | buffers_ = NULL;
| ^~~~~~~~
| numBuffers_
../NDArrayRing.cpp:29:18: error: ‘NDArray’ does not name a type
29 | buffers_ = new NDArray *[noOfBuffers_];
| ^~~~~~~
../NDArrayRing.cpp:29:28: error: capture of non-variable ‘NDArrayRing::noOfBuffers_’
29 | buffers_ = new NDArray *[noOfBuffers_];
| ^~~~~~~~~~~~
In file included from ../NDArrayRing.cpp:19:
../NDArrayRing.h:39:10: note: ‘int NDArrayRing::noOfBuffers_’ declared here
39 | int noOfBuffers_;
| ^~~~~~~~~~~~
../NDArrayRing.cpp: In lambda function:
../NDArrayRing.cpp:29:41: error: expected ‘{’ before ‘;’ token
29 | buffers_ = new NDArray *[noOfBuffers_];
| ^
../NDArrayRing.cpp: In destructor ‘NDArrayRing::~NDArrayRing()’:
../NDArrayRing.cpp:38:12: error: ‘buffers_’ was not declared in this scope; did you mean ‘numBuffers_’?
38 | delete[] buffers_;
| ^~~~~~~~
| numBuffers_
../NDArrayRing.cpp: At global scope:
../NDArrayRing.cpp:49:1: error: ‘NDArray’ does not name a type
49 | NDArray *NDArrayRing::addToEnd(NDArray *pArray)
| ^~~~~~~
../NDArrayRing.cpp:71:1: error: ‘NDArray’ does not name a type
71 | NDArray *NDArrayRing::readFromStart()
| ^~~~~~~
../NDArrayRing.cpp:83:1: error: ‘NDArray’ does not name a type
83 | NDArray *NDArrayRing::readNext()
| ^~~~~~~
../NDArrayRing.cpp: In member function ‘void NDArrayRing::clear()’:
../NDArrayRing.cpp:104:7: error: ‘buffers_’ was not declared in this scope; did you mean ‘numBuffers_’?
104 | if (buffers_){
| ^~~~~~~~
| numBuffers_
In file included from ../../../include/NDArray.h:20,
from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDAttribute.h: At global scope:
../../../include/NDAttribute.h:93:24: warning: ‘const char* attrSourceString(NDAttrSource_t)’ declared ‘static’ but never defined [-Wunused-function]
93 | static const char *attrSourceString(NDAttrSource_t type);
| ^~~~~~~~~~~~~~~~
In file included from ../NDArrayRing.h:4,
from ../NDArrayRing.cpp:19:
../../../include/NDArray.h:99:18: warning: ‘int computeArrayInfo(int, size_t*, NDDataType_t, NDArrayInfo*)’ declared ‘static’ but never defined [-Wunused-function]
99 | static int computeArrayInfo(int ndims, size_t *dims, NDDataType_t dataType, NDArrayInfo *pInfo);
| ^~~~~~~~~~~~~~~~
make[1]: *** [/home/marco/EPICS/epics-base/configure/RULES_BUILD:267: NDArrayRing.o] Error 1
make[1]: Leaving directory '/home/marco/EPICS/synApps_6_1/support/areaDetector-R3-7/ADCore/ADApp/pluginSrc/O.linux-x86_64'
make: *** [/home/marco/EPICS/epics-base/configure/RULES_ARCHS:58: install.linux-x86_64] Error 2