Skip to content

esp32-opencv build failed with error: 'recursive_mutex' in namespace 'std' does not name a type #14

@kowshik1234

Description

@kowshik1234

@joachimBurket I have followed everything as stated in this wikipage here. The configuring and the generation part is fine. When I tried compiling, after making the alloc.cpp fix as stated in the documentation when I proceeded with the build I got the following errors regarding the std::mutex and thread related.

Attaching entire build log.

[  1%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/adler32.c.obj
[  1%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/compress.c.obj
[  2%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/crc32.c.obj
[  2%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/deflate.c.obj
[  2%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/gzclose.c.obj
[  3%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/gzlib.c.obj
[  3%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/gzread.c.obj
[  4%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/gzwrite.c.obj
[  4%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/inflate.c.obj
[  5%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/infback.c.obj
[  5%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/inftrees.c.obj
[  6%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/inffast.c.obj
[  6%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/trees.c.obj
[  7%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/uncompr.c.obj
[  7%] Building C object 3rdparty/zlib/CMakeFiles/zlib.dir/zutil.c.obj
[  8%] Linking C static library ../lib/libzlib.a
[  8%] Built target zlib
[  8%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/png.c.obj
[  9%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngerror.c.obj
[  9%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngget.c.obj
[ 10%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngmem.c.obj
[ 10%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngpread.c.obj
[ 11%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngread.c.obj
[ 11%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngrio.c.obj
[ 11%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngrtran.c.obj
[ 12%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngrutil.c.obj
[ 12%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngset.c.obj
[ 13%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngtrans.c.obj
[ 13%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngwio.c.obj
[ 14%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngwrite.c.obj
[ 14%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngwtran.c.obj
[ 15%] Building C object 3rdparty/libpng/CMakeFiles/libpng.dir/pngwutil.c.obj
[ 15%] Linking C static library ../lib/liblibpng.a
[ 15%] Built target libpng
[ 15%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/alloc.cpp.obj
[ 15%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/assert.cpp.obj
[ 16%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/check_cycles.cpp.obj
[ 16%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/edge.cpp.obj
[ 17%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/execution_engine.cpp.obj
[ 17%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/graph.cpp.obj
[ 18%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/memory_accessor.cpp.obj
[ 18%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/memory_descriptor.cpp.obj
[ 19%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/memory_descriptor_ref.cpp.obj
[ 19%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/memory_descriptor_view.cpp.obj
[ 20%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/metadata.cpp.obj
[ 20%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/metatypes.cpp.obj
[ 20%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/node.cpp.obj
[ 21%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/passes/communications.cpp.obj
[ 21%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/search.cpp.obj
[ 22%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/subgraphs.cpp.obj
[ 22%] Building CXX object modules/CMakeFiles/ade.dir/__/3rdparty/ade/ade-0.1.1f/sources/ade/source/topological_sort.cpp.obj
[ 23%] Linking CXX static library ../lib/libade.a
[ 23%] Built target ade
[ 23%] Built target opencv_videoio_plugins
[ 24%] Processing OpenCL kernels (core)
-- /home/kowshik/Downloads/esp32-opencv-master/build/modules/core/opencl_kernels_core.hpp contains the same content
[ 24%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/algorithm.cpp.obj
In file included from /home/kowshik/Downloads/esp32-opencv-master/modules/core/src/precomp.hpp:49:0,
                 from /home/kowshik/Downloads/esp32-opencv-master/modules/core/src/algorithm.cpp:43:
/home/kowshik/Downloads/esp32-opencv-master/modules/core/include/opencv2/core/utility.hpp:714:14: error: 'recursive_mutex' in namespace 'std' does not name a type
 typedef std::recursive_mutex Mutex;
              ^
/home/kowshik/Downloads/esp32-opencv-master/modules/core/include/opencv2/core/utility.hpp:715:25: error: 'Mutex' is not a member of 'cv'
 typedef std::lock_guard<cv::Mutex> AutoLock;
                         ^
/home/kowshik/Downloads/esp32-opencv-master/modules/core/include/opencv2/core/utility.hpp:715:25: error: 'Mutex' is not a member of 'cv'
/home/kowshik/Downloads/esp32-opencv-master/modules/core/include/opencv2/core/utility.hpp:715:34: error: template argument 1 is invalid
 typedef std::lock_guard<cv::Mutex> AutoLock;
                                  ^
In file included from /home/kowshik/Downloads/esp32-opencv-master/modules/core/src/algorithm.cpp:43:0:
/home/kowshik/Downloads/esp32-opencv-master/modules/core/src/precomp.hpp:365:5: error: 'Mutex' in namespace 'cv' does not name a type
 cv::Mutex& getInitializationMutex();
     ^
cc1plus: warning: unrecognized command line option '-Wno-unnamed-type-template-args'
cc1plus: warning: unrecognized command line option '-Wno-frame-address'
make[2]: *** [modules/core/CMakeFiles/opencv_core.dir/build.make:103: modules/core/CMakeFiles/opencv_core.dir/src/algorithm.cpp.obj] Error 1
make[1]: *** [CMakeFiles/Makefile2:845: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [Makefile:166: all] Error 2

Please let me know how to fix this? What causes this and I have seen similar error when I tried to build opencv standalone with arm-none-eabi-gcc compiler.

Thanks,
G Kowshik

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions