mxnet-insightface-cpp
mxnet-insightface-cpp copied to clipboard
Can't compile under Linux
What I did:
mkdir build && cd build
cmake -DLINUX=ON -DOpenCV_DIR=/home/user/opencv-master/build ..
I've copied *.so files from incubator-mxnet/build/ which I've built from master branch source to mxnet-insightface-cpp/lib.
Now it says:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37:10: fatal error: mxnet-cpp/op.h: No such file or directory
37 | #include "mxnet-cpp/op.h"
I've found op.h header from incubator-mxnet
cp ./incubator-mxnet/3rdparty/tvm/nnvm/include/nnvm/op.h ./mxnet-insightface-cpp/include/include/mxnet-cpp
make -j8
[ 40%] Building CXX object CMakeFiles/mxnet-insightface-cpp.dir/src/main.cpp.o
[ 40%] Building CXX object CMakeFiles/mxnet-insightface-cpp.dir/src/mxnet_mtcnn.cpp.o
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:294:22: error: ‘Registry’ is not a class template
294 | friend class dmlc::Registry<Op>;
| ^~~~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:294:22: error: ‘Registry’ in namespace ‘dmlc’ does not name a type
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:294:3: error: friend declaration does not name a class or function
294 | friend class dmlc::Registry<Op>;
| ^~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:301:16: error: ‘any’ does not name a type
301 | static const any* GetAttrMap(const std::string& key);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: error: ‘any’ was not declared in this scope
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: note: suggested alternatives:
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:184:8: note: ‘cvflann::any’
184 | struct any
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:90:7: note: ‘dmlc::any’
90 | class any {
| ^~~
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:132:8: note: ‘cvflann::anyimpl::any’
132 | struct any;
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:77: error: template argument 1 is invalid
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: error: ‘any’ was not declared in this scope
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: note: suggested alternatives:
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:184:8: note: ‘cvflann::any’
184 | struct any
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:90:7: note: ‘dmlc::any’
90 | class any {
| ^~~
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:132:8: note: ‘cvflann::anyimpl::any’
132 | struct any;
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:77: error: template argument 1 is invalid
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: error: ‘any’ was not declared in this scope
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: note: suggested alternatives:
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:184:8: note: ‘cvflann::any’
184 | struct any
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:90:7: note: ‘dmlc::any’
90 | class any {
| ^~~
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:132:8: note: ‘cvflann::anyimpl::any’
132 | struct any;
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:77: error: template argument 1 is invalid
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:58: error: ‘std::function’ is not a type
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:66: error: expected ‘,’ or ‘...’ before ‘<’ token
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In static member function ‘static const nnvm::OpMap<ValueType>& nnvm::Op::GetAttr(const string&)’:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:436:9: error: ‘any’ does not name a type
436 | const any* ref = GetAttrMap(key);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:437:7: error: ‘ref’ was not declared in this scope; did you mean ‘std::ref’?
437 | if (ref == nullptr) {
| ^~~
| std::ref
In file included from /usr/include/c++/9/bits/shared_ptr_base.h:54,
from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/memory:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd_wrapper.hpp:11,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd.hpp:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/base.hpp:58,
from /home/user/opencv-master/modules/core/include/opencv2/core.hpp:53,
from /home/user/opencv-master/include/opencv2/opencv.hpp:52,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/usr/include/c++/9/bits/refwrap.h:370:5: note: ‘std::ref’ declared here
370 | ref(reference_wrapper<_Tp> __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:439:30: error: ‘any’ has not been declared
439 | UpdateAttrMap(key, [key](any* pmap) {
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In lambda function:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:441:17: error: request for member ‘empty’ in ‘pmap->’, which is of non-class type ‘int’
441 | if (pmap->empty()) {
| ^~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In static member function ‘static const nnvm::OpMap<ValueType>& nnvm::Op::GetAttr(const string&)’:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:447:11: error: there are no arguments to ‘GetAttrMap’ that depend on a template parameter, so a declaration of ‘GetAttrMap’ must be available [-fpermissive]
447 | ref = GetAttrMap(key);
| ^~~~~~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:447:11: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:16: error: ‘get’ is not a member of ‘nnvm’
449 | return nnvm::get<OpMap<ValueType>>(*ref);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:16: note: suggested alternatives:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/memory:80,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd_wrapper.hpp:11,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd.hpp:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/base.hpp:58,
from /home/user/opencv-master/modules/core/include/opencv2/core.hpp:53,
from /home/user/opencv-master/include/opencv2/opencv.hpp:52,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/usr/include/c++/9/tuple:1341:5: note: ‘std::get’
1341 | get(const tuple<_Elements...>&& __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:340:17: note: ‘dmlc::get’
340 | inline const T& get(const any& src) {
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:35: error: expected primary-expression before ‘>’ token
449 | return nnvm::get<OpMap<ValueType>>(*ref);
| ^~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:39: error: ‘ref’ was not declared in this scope; did you mean ‘std::ref’?
449 | return nnvm::get<OpMap<ValueType>>(*ref);
| ^~~
| std::ref
In file included from /usr/include/c++/9/bits/shared_ptr_base.h:54,
from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/memory:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd_wrapper.hpp:11,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd.hpp:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/base.hpp:58,
from /home/user/opencv-master/modules/core/include/opencv2/core.hpp:53,
from /home/user/opencv-master/include/opencv2/opencv.hpp:52,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/usr/include/c++/9/bits/refwrap.h:370:5: note: ‘std::ref’ declared here
370 | ref(reference_wrapper<_Tp> __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In member function ‘nnvm::Op& nnvm::Op::set_attr(const string&, const ValueType&, int)’:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:457:61: error: ‘any’ has not been declared
457 | UpdateAttrMap(attr_name, [this, attr_name, value, plevel](any* pmap) {
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In lambda function:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:459:15: error: request for member ‘empty’ in ‘pmap->’, which is of non-class type ‘int’
459 | if (pmap->empty()) {
| ^~~~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op_map.h:33,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/symbol.h:35,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/executor.h:35,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/executor.hpp:32,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:30,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:464:17: error: request for member ‘type’ in ‘pmap->’, which is of non-class type ‘int’
464 | CHECK(pmap->type() == typeid(OpMap<ValueType>))
| ^~~~
/home/user/mxnet-insightface-cpp/include/include/dmlc/logging.h:206:9: note: in definition of macro ‘CHECK’
206 | if (!(x)) \
| ^
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:294:22: error: ‘Registry’ is not a class template
294 | friend class dmlc::Registry<Op>;
| ^~~~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:294:22: error: ‘Registry’ in namespace ‘dmlc’ does not name a type
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:294:3: error: friend declaration does not name a class or function
294 | friend class dmlc::Registry<Op>;
| ^~~~~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:467:36: error: request for member ‘type’ in ‘pmap->’, which is of non-class type ‘int’
467 | << " previously " << pmap->type().name() << " current " << typeid(OpMap<ValueType>).name();
| ^~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:57: error: ‘get’ is not a member of ‘nnvm’
468 | std::vector<std::pair<ValueType, int>>& vec = nnvm::get<OpMap<ValueType>>(*pmap).data_;
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:57: note: suggested alternatives:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/memory:80,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd_wrapper.hpp:11,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd.hpp:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/base.hpp:58,
from /home/user/opencv-master/modules/core/include/opencv2/core.hpp:53,
from /home/user/opencv-master/include/opencv2/opencv.hpp:52,
from /home/user/mxnet-insightface-cpp/src/main.cpp:6:
/usr/include/c++/9/tuple:1341:5: note: ‘std::get’
1341 | get(const tuple<_Elements...>&& __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:340:17: note: ‘dmlc::get’
340 | inline const T& get(const any& src) {
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/feature_extract.hpp:7,
from /home/user/mxnet-insightface-cpp/src/main.cpp:12:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:76: error: expected primary-expression before ‘>’ token
468 | std::vector<std::pair<ValueType, int>>& vec = nnvm::get<OpMap<ValueType>>(*pmap).data_;
| ^~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:86: error: request for member ‘data_’ in ‘* pmap’, which is of non-class type ‘int’
468 | std::vector<std::pair<ValueType, int>>& vec = nnvm::get<OpMap<ValueType>>(*pmap).data_;
| ^~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:301:16: error: ‘any’ does not name a type
301 | static const any* GetAttrMap(const std::string& key);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: error: ‘any’ was not declared in this scope
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: note: suggested alternatives:
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:184:8: note: ‘cvflann::any’
184 | struct any
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:90:7: note: ‘dmlc::any’
90 | class any {
| ^~~
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:132:8: note: ‘cvflann::anyimpl::any’
132 | struct any;
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:77: error: template argument 1 is invalid
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: error: ‘any’ was not declared in this scope
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: note: suggested alternatives:
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:184:8: note: ‘cvflann::any’
184 | struct any
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:90:7: note: ‘dmlc::any’
90 | class any {
| ^~~
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:132:8: note: ‘cvflann::anyimpl::any’
132 | struct any;
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:77: error: template argument 1 is invalid
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: error: ‘any’ was not declared in this scope
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:72: note: suggested alternatives:
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:184:8: note: ‘cvflann::any’
184 | struct any
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:90:7: note: ‘dmlc::any’
90 | class any {
| ^~~
In file included from /home/user/opencv-master/modules/flann/include/opencv2/flann/params.h:35,
from /home/user/opencv-master/modules/flann/include/opencv2/flann/flann_base.hpp:41,
from /home/user/opencv-master/modules/flann/include/opencv2/flann.hpp:48,
from /home/user/opencv-master/include/opencv2/opencv.hpp:65,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/home/user/opencv-master/modules/flann/include/opencv2/flann/any.h:132:8: note: ‘cvflann::anyimpl::any’
132 | struct any;
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:77: error: template argument 1 is invalid
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:58: error: ‘std::function’ is not a type
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^~~~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:303:66: error: expected ‘,’ or ‘...’ before ‘<’ token
303 | static void UpdateAttrMap(const std::string& key, std::function<void(any*)> updater);
| ^
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In static member function ‘static const nnvm::OpMap<ValueType>& nnvm::Op::GetAttr(const string&)’:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:436:9: error: ‘any’ does not name a type
436 | const any* ref = GetAttrMap(key);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:437:7: error: ‘ref’ was not declared in this scope; did you mean ‘std::ref’?
437 | if (ref == nullptr) {
| ^~~
| std::ref
In file included from /usr/include/c++/9/bits/shared_ptr_base.h:54,
from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/memory:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd_wrapper.hpp:11,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd.hpp:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/base.hpp:58,
from /home/user/opencv-master/modules/core/include/opencv2/core.hpp:53,
from /home/user/opencv-master/include/opencv2/opencv.hpp:52,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/usr/include/c++/9/bits/refwrap.h:370:5: note: ‘std::ref’ declared here
370 | ref(reference_wrapper<_Tp> __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:439:30: error: ‘any’ has not been declared
439 | UpdateAttrMap(key, [key](any* pmap) {
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In lambda function:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:441:17: error: request for member ‘empty’ in ‘pmap->’, which is of non-class type ‘int’
441 | if (pmap->empty()) {
| ^~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In static member function ‘static const nnvm::OpMap<ValueType>& nnvm::Op::GetAttr(const string&)’:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:447:11: error: there are no arguments to ‘GetAttrMap’ that depend on a template parameter, so a declaration of ‘GetAttrMap’ must be available [-fpermissive]
447 | ref = GetAttrMap(key);
| ^~~~~~~~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:447:11: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:16: error: ‘get’ is not a member of ‘nnvm’
449 | return nnvm::get<OpMap<ValueType>>(*ref);
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:16: note: suggested alternatives:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/bits/locale_conv.h:41,
from /usr/include/c++/9/locale:43,
from /usr/include/c++/9/iomanip:43,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:3:
/usr/include/c++/9/tuple:1341:5: note: ‘std::get’
1341 | get(const tuple<_Elements...>&& __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:340:17: note: ‘dmlc::get’
340 | inline const T& get(const any& src) {
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:35: error: expected primary-expression before ‘>’ token
449 | return nnvm::get<OpMap<ValueType>>(*ref);
| ^~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:449:39: error: ‘ref’ was not declared in this scope; did you mean ‘std::ref’?
449 | return nnvm::get<OpMap<ValueType>>(*ref);
| ^~~
| std::ref
In file included from /usr/include/c++/9/bits/shared_ptr_base.h:54,
from /usr/include/c++/9/bits/shared_ptr.h:52,
from /usr/include/c++/9/memory:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd_wrapper.hpp:11,
from /home/user/opencv-master/modules/core/include/opencv2/core/cvstd.hpp:81,
from /home/user/opencv-master/modules/core/include/opencv2/core/base.hpp:58,
from /home/user/opencv-master/modules/core/include/opencv2/core.hpp:53,
from /home/user/opencv-master/include/opencv2/opencv.hpp:52,
from /home/user/mxnet-insightface-cpp/src/mtcnn.hpp:5,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:8:
/usr/include/c++/9/bits/refwrap.h:370:5: note: ‘std::ref’ declared here
370 | ref(reference_wrapper<_Tp> __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In member function ‘nnvm::Op& nnvm::Op::set_attr(const string&, const ValueType&, int)’:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:457:61: error: ‘any’ has not been declared
457 | UpdateAttrMap(attr_name, [this, attr_name, value, plevel](any* pmap) {
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h: In lambda function:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:459:15: error: request for member ‘empty’ in ‘pmap->’, which is of non-class type ‘int’
459 | if (pmap->empty()) {
| ^~~~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op_map.h:33,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/symbol.h:35,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/executor.h:35,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/executor.hpp:32,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:30,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:464:17: error: request for member ‘type’ in ‘pmap->’, which is of non-class type ‘int’
464 | CHECK(pmap->type() == typeid(OpMap<ValueType>))
| ^~~~
/home/user/mxnet-insightface-cpp/include/include/dmlc/logging.h:206:9: note: in definition of macro ‘CHECK’
206 | if (!(x)) \
| ^
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:467:36: error: request for member ‘type’ in ‘pmap->’, which is of non-class type ‘int’
467 | << " previously " << pmap->type().name() << " current " << typeid(OpMap<ValueType>).name();
| ^~~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:57: error: ‘get’ is not a member of ‘nnvm’
468 | std::vector<std::pair<ValueType, int>>& vec = nnvm::get<OpMap<ValueType>>(*pmap).data_;
| ^~~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:57: note: suggested alternatives:
In file included from /usr/include/c++/9/bits/unique_ptr.h:37,
from /usr/include/c++/9/bits/locale_conv.h:41,
from /usr/include/c++/9/locale:43,
from /usr/include/c++/9/iomanip:43,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:3:
/usr/include/c++/9/tuple:1341:5: note: ‘std::get’
1341 | get(const tuple<_Elements...>&& __t) noexcept
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/dmlc/./json.h:33,
from /home/user/mxnet-insightface-cpp/include/include/dmlc/parameter.h:26,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:27,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/dmlc/././any.h:340:17: note: ‘dmlc::get’
340 | inline const T& get(const any& src) {
| ^~~
In file included from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/optimizer.hpp:37,
from /home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/MxNetCpp.h:35,
from /home/user/mxnet-insightface-cpp/src/mxnet_mtcnn.cpp:11:
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:76: error: expected primary-expression before ‘>’ token
468 | std::vector<std::pair<ValueType, int>>& vec = nnvm::get<OpMap<ValueType>>(*pmap).data_;
| ^~
/home/user/mxnet-insightface-cpp/include/include/mxnet-cpp/op.h:468:86: error: request for member ‘data_’ in ‘* pmap’, which is of non-class type ‘int’
468 | std::vector<std::pair<ValueType, int>>& vec = nnvm::get<OpMap<ValueType>>(*pmap).data_;
| ^~~~~
make[2]: *** [CMakeFiles/mxnet-insightface-cpp.dir/build.make:89: CMakeFiles/mxnet-insightface-cpp.dir/src/mxnet_mtcnn.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [CMakeFiles/mxnet-insightface-cpp.dir/build.make:76: CMakeFiles/mxnet-insightface-cpp.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:76: CMakeFiles/mxnet-insightface-cpp.dir/all] Error 2
make: *** [Makefile:84: all] Error 2
Hi @Novitoll @njvisionpower I am getting the same error. were you able to solve the problem? Error description: fatal error: mxnet-cpp/op.h: No such file or directory #include "mxnet-cpp/op.h"